diff --git a/oslo_vmware/tests/test_rw_handles.py b/oslo_vmware/tests/test_rw_handles.py index 07c5a71..2dfc2b7 100644 --- a/oslo_vmware/tests/test_rw_handles.py +++ b/oslo_vmware/tests/test_rw_handles.py @@ -17,6 +17,8 @@ Unit tests for read and write handles for image transfer. """ +import ssl + import mock import six @@ -24,7 +26,6 @@ from oslo_vmware import exceptions from oslo_vmware import rw_handles from oslo_vmware.tests import base from oslo_vmware import vim_util -from urllib3 import connection as httplib class FileHandleTest(base.TestCase): @@ -53,12 +54,59 @@ class FileHandleTest(base.TestCase): self.assertEqual(exp_url, url) self.assertEqual('11:22:33:44:55', thumbprint) - def test_create_connection(self): + @mock.patch('urllib3.connection.HTTPConnection') + def test_create_connection_http(self, http_conn): + conn = mock.Mock() + http_conn.return_value = conn + handle = rw_handles.FileHandle(None) - conn = handle._create_connection('http://fira', 'GET') - self.assertIsInstance(conn, httplib.HTTPConnection) - conn = handle._create_connection('https://fira', 'GET') - self.assertIsInstance(conn, httplib.HTTPSConnection) + ret = handle._create_connection('http://localhost/foo?q=bar', 'GET') + + self.assertEqual(conn, ret) + conn.putrequest.assert_called_once_with('GET', '/foo?q=bar') + + @mock.patch('urllib3.connection.HTTPSConnection') + def test_create_connection_https(self, https_conn): + conn = mock.Mock() + https_conn.return_value = conn + + handle = rw_handles.FileHandle(None) + ret = handle._create_connection('https://localhost/foo?q=bar', 'GET') + + self.assertEqual(conn, ret) + conn.set_cert.assert_called_once_with( + ca_certs=None, cert_reqs=ssl.CERT_NONE, assert_fingerprint=None) + conn.putrequest.assert_called_once_with('GET', '/foo?q=bar') + + @mock.patch('urllib3.connection.HTTPSConnection') + def test_create_connection_https_with_cacerts(self, https_conn): + conn = mock.Mock() + https_conn.return_value = conn + + handle = rw_handles.FileHandle(None) + ret = handle._create_connection('https://localhost/foo?q=bar', 'GET', + cacerts=True) + + self.assertEqual(conn, ret) + conn.set_cert.assert_called_once_with( + ca_certs=None, cert_reqs=ssl.CERT_REQUIRED, + assert_fingerprint=None) + + @mock.patch('urllib3.connection.HTTPSConnection') + def test_create_connection_https_with_ssl_thumbprint(self, https_conn): + conn = mock.Mock() + https_conn.return_value = conn + + handle = rw_handles.FileHandle(None) + cacerts = mock.sentinel.cacerts + thumbprint = mock.sentinel.thumbprint + ret = handle._create_connection('https://localhost/foo?q=bar', 'GET', + cacerts=cacerts, + ssl_thumbprint=thumbprint) + + self.assertEqual(conn, ret) + conn.set_cert.assert_called_once_with( + ca_certs=cacerts, cert_reqs=None, assert_fingerprint=thumbprint) class FileWriteHandleTest(base.TestCase): diff --git a/oslo_vmware/tests/test_vim_util.py b/oslo_vmware/tests/test_vim_util.py index 6548c5f..2594b76 100644 --- a/oslo_vmware/tests/test_vim_util.py +++ b/oslo_vmware/tests/test_vim_util.py @@ -205,8 +205,8 @@ class VimUtilTest(base.TestCase): self.assertEqual([trav_spec], obj_spec.selectSet) self.assertFalse(obj_spec.skip) - vim.RetrievePropertiesEx.side_effect = \ - vim_RetrievePropertiesEx_side_effect + vim.RetrievePropertiesEx.side_effect = ( + vim_RetrievePropertiesEx_side_effect) vim_util.get_objects(vim, _type, max_objects) self.assertEqual(1, vim.RetrievePropertiesEx.call_count) @@ -245,8 +245,8 @@ class VimUtilTest(base.TestCase): return retrieve_result - vim.RetrievePropertiesEx.side_effect = \ - vim_RetrievePropertiesEx_side_effect + vim.RetrievePropertiesEx.side_effect = ( + vim_RetrievePropertiesEx_side_effect) res = vim_util.get_object_properties(vim, moref, None) self.assertEqual(1, vim.RetrievePropertiesEx.call_count)