Repository: libcloud Updated Branches: refs/heads/trunk a4a58f9c5 -> 01c9bafbd
Add tests for certifi CA bundle path stuff. Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/f777da60 Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/f777da60 Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/f777da60 Branch: refs/heads/trunk Commit: f777da60d520c06373f6182e5ef44aa10e9b5837 Parents: ec78da2 Author: Tomaz Muraus <to...@tomaz.me> Authored: Tue Jun 14 19:06:27 2016 +0200 Committer: Anthony Shaw <anthonys...@apache.org> Committed: Fri Jun 17 16:36:42 2016 +1000 ---------------------------------------------------------------------- libcloud/test/test_httplib_ssl.py | 47 ++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/f777da60/libcloud/test/test_httplib_ssl.py ---------------------------------------------------------------------- diff --git a/libcloud/test/test_httplib_ssl.py b/libcloud/test/test_httplib_ssl.py index 996498f..0fac77d 100644 --- a/libcloud/test/test_httplib_ssl.py +++ b/libcloud/test/test_httplib_ssl.py @@ -152,6 +152,53 @@ class TestHttpLibSSLTests(unittest.TestCase): self.assertEqual(e.errno, 105) self.assertTrue('Some random error' in str(e)) + def test_certifi_ca_bundle_in_search_path(self): + mock_certifi_ca_bundle_path = '/certifi/bundle/path' + + # Certifi not available + import libcloud.security + reload(libcloud.security) + + original_length = len(libcloud.security.CA_CERTS_PATH) + + self.assertTrue(mock_certifi_ca_bundle_path not in + libcloud.security.CA_CERTS_PATH) + + # Certifi is available + mock_certifi = mock.Mock() + mock_certifi.where.return_value = mock_certifi_ca_bundle_path + sys.modules['certifi'] = mock_certifi + + # Certifi CA bundle path should be injected at the begining of search list + import libcloud.security + reload(libcloud.security) + + self.assertEqual(libcloud.security.CA_CERTS_PATH[0], + mock_certifi_ca_bundle_path) + self.assertEqual(len(libcloud.security.CA_CERTS_PATH), + (original_length + 1)) + + # Certifi is available, but USE_CERTIFI is set to False + os.environ['LIBCLOUD_SSL_USE_CERTIFI'] = 'false' + + import libcloud.security + reload(libcloud.security) + + self.assertTrue(mock_certifi_ca_bundle_path not in + libcloud.security.CA_CERTS_PATH) + self.assertEqual(len(libcloud.security.CA_CERTS_PATH), original_length) + + # And enabled + os.environ['LIBCLOUD_SSL_USE_CERTIFI'] = 'true' + + import libcloud.security + reload(libcloud.security) + + self.assertEqual(libcloud.security.CA_CERTS_PATH[0], + mock_certifi_ca_bundle_path) + self.assertEqual(len(libcloud.security.CA_CERTS_PATH), + (original_length + 1)) + if __name__ == '__main__': sys.exit(unittest.main())