From bd0aa0672e0ebb5dfaa2178a8ffce79be143524b Mon Sep 17 00:00:00 2001 From: Stuart McLaren Date: Sat, 11 Apr 2015 10:28:20 +0000 Subject: [PATCH] Fix https stack trace on python 3.4 client When using the client with python 3.4 and no ssl compression the following stack trace ocurrs: TypeError: startswith first arg must be bytes or a tuple of bytes, not str Closes-bug: 1442883 Related-bug: 1357430 Change-Id: I8e28f0bb1f3e866f11851247ce31470ca8c2af4f --- glanceclient/common/https.py | 4 +++- tests/test_ssl.py | 7 ------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/glanceclient/common/https.py b/glanceclient/common/https.py index 51f8f6d8..649d14b7 100644 --- a/glanceclient/common/https.py +++ b/glanceclient/common/https.py @@ -158,7 +158,9 @@ class HTTPSAdapter(adapters.HTTPAdapter): # NOTE(flaper87): Make sure the url is encoded, otherwise # python's standard httplib will fail with a TypeError. url = super(HTTPSAdapter, self).request_url(request, proxies) - return encodeutils.safe_encode(url) + if six.PY2: + url = encodeutils.safe_encode(url) + return url def _create_glance_httpsconnectionpool(self, url): kw = self.poolmanager.connection_kw diff --git a/tests/test_ssl.py b/tests/test_ssl.py index cdfff5e1..907b7bfe 100644 --- a/tests/test_ssl.py +++ b/tests/test_ssl.py @@ -84,11 +84,6 @@ class TestHTTPSVerifyCert(testtools.TestCase): server_thread.daemon = True server_thread.start() - def _skip_python3(self): - if six.PY3: - msg = ("Skipping: python3 for now. Requires bugfix.") - self.skipTest(msg) - def test_v1_requests_cert_verification(self): """v1 regression test for bug 115260.""" port = self.port @@ -108,7 +103,6 @@ class TestHTTPSVerifyCert(testtools.TestCase): def test_v1_requests_cert_verification_no_compression(self): """v1 regression test for bug 115260.""" - self._skip_python3() port = self.port url = 'https://0.0.0.0:%d' % port @@ -143,7 +137,6 @@ class TestHTTPSVerifyCert(testtools.TestCase): def test_v2_requests_cert_verification_no_compression(self): """v2 regression test for bug 115260.""" - self._skip_python3() port = self.port url = 'https://0.0.0.0:%d' % port