diff --git a/swiftclient/shell.py b/swiftclient/shell.py index 5eafe0b6..486dc48f 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 d82def62..0639ac17 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