Merge "Include unsupported url scheme with ClientException"

This commit is contained in:
Jenkins 2015-03-31 22:18:44 +00:00 committed by Gerrit Code Review
commit 3105cdc4f8
2 changed files with 25 additions and 1 deletions
swiftclient
tests/unit

@ -169,7 +169,8 @@ class HTTPConnection(object):
self.requests_args = {}
self.request_session = requests.Session()
if self.parsed_url.scheme not in ('http', 'https'):
raise ClientException("Unsupported scheme")
raise ClientException('Unsupported scheme "%s" in url "%s"'
% (self.parsed_url.scheme, url))
self.requests_args['verify'] = not insecure
if cacert and not insecure:
# verify requests parameter is used to pass the CA_BUNDLE file

@ -1036,6 +1036,29 @@ class TestGetCapabilities(MockHttpTest):
class TestHTTPConnection(MockHttpTest):
def test_bad_url_scheme(self):
url = u'www.test.com'
exc = self.assertRaises(c.ClientException, c.http_connection, url)
expected = u'Unsupported scheme "" in url "www.test.com"'
self.assertEqual(expected, str(exc))
url = u'://www.test.com'
exc = self.assertRaises(c.ClientException, c.http_connection, url)
expected = u'Unsupported scheme "" in url "://www.test.com"'
self.assertEqual(expected, str(exc))
url = u'blah://www.test.com'
exc = self.assertRaises(c.ClientException, c.http_connection, url)
expected = u'Unsupported scheme "blah" in url "blah://www.test.com"'
self.assertEqual(expected, str(exc))
def test_ok_url_scheme(self):
for scheme in ('http', 'https', 'HTTP', 'HTTPS'):
url = u'%s://www.test.com' % scheme
parsed_url, conn = c.http_connection(url)
self.assertEqual(scheme.lower(), parsed_url.scheme)
self.assertEqual(u'%s://www.test.com' % scheme, conn.url)
def test_ok_proxy(self):
conn = c.http_connection(u'http://www.test.com/',
proxy='http://localhost:8080')