diff options
author | Tim Burke <tim.burke@gmail.com> | 2016-06-01 16:45:54 -0700 |
---|---|---|
committer | Tim Burke <tim.burke@gmail.com> | 2016-06-01 18:57:38 -0700 |
commit | ff505d72cdec8adfee45852d564985798a563d21 (patch) | |
tree | d255acd5146ad8dc4095d237ed56f8fd480711d9 | |
parent | f9d0657e70e9511a2d7b4c63bbf06b138dd0be5e (diff) | |
download | python-swiftclient-ff505d72cdec8adfee45852d564985798a563d21.tar.gz |
Suppress InsecureRequestWarning when using --insecure
The user already knows this is insecure, there's no point in bringing it
up again and again.
See also: https://github.com/kennethreitz/requests/issues/2214
Change-Id: I7991b2e568407269f84138bc03711147ed080c9c
-rwxr-xr-x | swiftclient/shell.py | 5 | ||||
-rw-r--r-- | tests/unit/test_shell.py | 28 |
2 files changed, 23 insertions, 10 deletions
diff --git a/swiftclient/shell.py b/swiftclient/shell.py index 5eafe0b..486dc48 100755 --- a/swiftclient/shell.py +++ b/swiftclient/shell.py @@ -1524,6 +1524,11 @@ Examples: with OutputManager() as output: parser.usage = globals()['st_%s_help' % args[0]] + if options['insecure']: + import requests + from requests.packages.urllib3.exceptions import \ + InsecureRequestWarning + requests.packages.urllib3.disable_warnings(InsecureRequestWarning) try: globals()['st_%s' % args[0]](parser, argv[1:], output) except ClientException as err: diff --git a/tests/unit/test_shell.py b/tests/unit/test_shell.py index d82def6..0639ac1 100644 --- a/tests/unit/test_shell.py +++ b/tests/unit/test_shell.py @@ -23,7 +23,7 @@ import tempfile import unittest import textwrap - +from requests.packages.urllib3.exceptions import InsecureRequestWarning import six import swiftclient @@ -1899,15 +1899,23 @@ class TestKeystoneOptions(MockHttpTest): auth_token=token) with mock.patch('swiftclient.client._import_keystone_client', - _make_fake_import_keystone_client(fake_ks)): - with mock.patch('swiftclient.client.http_connection', fake_conn): - with mock.patch.dict(os.environ, env, clear=True): - try: - swiftclient.shell.main(args) - except SystemExit as e: - self.fail('Unexpected SystemExit: %s' % e) - except SwiftError as err: - self.fail('Unexpected SwiftError: %s' % err) + _make_fake_import_keystone_client(fake_ks)), \ + mock.patch('swiftclient.client.http_connection', fake_conn), \ + mock.patch.dict(os.environ, env, clear=True), \ + mock.patch('requests.packages.urllib3.disable_warnings') as \ + mock_disable_warnings: + try: + swiftclient.shell.main(args) + except SystemExit as e: + self.fail('Unexpected SystemExit: %s' % e) + except SwiftError as err: + self.fail('Unexpected SwiftError: %s' % err) + + if 'insecure' in flags: + self.assertEqual([mock.call(InsecureRequestWarning)], + mock_disable_warnings.mock_calls) + else: + self.assertEqual([], mock_disable_warnings.mock_calls) if no_auth: # check that keystone client was not used and terminate tests |