diff options
| author | Jenkins <jenkins@review.openstack.org> | 2015-09-08 23:09:42 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2015-09-08 23:09:42 +0000 |
| commit | f630894f66e6048daf299fb2bab2ffeff6666693 (patch) | |
| tree | dfb8f428bcc7dfaf79ab5d5e511aacbbdd6446ff /keystoneclient/tests/unit | |
| parent | 6231459156c7ffcea574efb2e01ce0b5ec78d9ac (diff) | |
| parent | 33b24a6984c8de2f26af7900202bb85b6b5db125 (diff) | |
| download | python-keystoneclient-f630894f66e6048daf299fb2bab2ffeff6666693.tar.gz | |
Merge "Fixes missing socket attribute error during init_poolmanager"
Diffstat (limited to 'keystoneclient/tests/unit')
| -rw-r--r-- | keystoneclient/tests/unit/test_session.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/keystoneclient/tests/unit/test_session.py b/keystoneclient/tests/unit/test_session.py index f7384cd..a5c4474 100644 --- a/keystoneclient/tests/unit/test_session.py +++ b/keystoneclient/tests/unit/test_session.py @@ -280,6 +280,43 @@ class SessionTests(utils.TestCase): self.assertEqual(1, logger.debug.call_count) +class TCPKeepAliveAdapter(utils.TestCase): + + @mock.patch.object(client_session, 'socket') + @mock.patch('requests.adapters.HTTPAdapter.init_poolmanager') + def test_init_poolmanager_all_options(self, mock_parent_init_poolmanager, + mock_socket): + # properties expected to be in socket. + mock_socket.TCP_KEEPIDLE = mock.sentinel.TCP_KEEPIDLE + mock_socket.TCP_KEEPCNT = mock.sentinel.TCP_KEEPCNT + mock_socket.TCP_KEEPINTVL = mock.sentinel.TCP_KEEPINTVL + desired_opts = [mock_socket.TCP_KEEPIDLE, mock_socket.TCP_KEEPCNT, + mock_socket.TCP_KEEPINTVL] + + adapter = client_session.TCPKeepAliveAdapter() + adapter.init_poolmanager() + + call_args, call_kwargs = mock_parent_init_poolmanager.call_args + called_socket_opts = call_kwargs['socket_options'] + call_options = [opt for (protocol, opt, value) in called_socket_opts] + for opt in desired_opts: + self.assertIn(opt, call_options) + + @mock.patch.object(client_session, 'socket') + @mock.patch('requests.adapters.HTTPAdapter.init_poolmanager') + def test_init_poolmanager(self, mock_parent_init_poolmanager, mock_socket): + spec = ['IPPROTO_TCP', 'TCP_NODELAY', 'SOL_SOCKET', 'SO_KEEPALIVE'] + mock_socket.mock_add_spec(spec) + adapter = client_session.TCPKeepAliveAdapter() + adapter.init_poolmanager() + + call_args, call_kwargs = mock_parent_init_poolmanager.call_args + called_socket_opts = call_kwargs['socket_options'] + call_options = [opt for (protocol, opt, value) in called_socket_opts] + self.assertEqual([mock_socket.TCP_NODELAY, mock_socket.SO_KEEPALIVE], + call_options) + + class RedirectTests(utils.TestCase): REDIRECT_CHAIN = ['http://myhost:3445/', |
