From ff505d72cdec8adfee45852d564985798a563d21 Mon Sep 17 00:00:00 2001 From: Tim Burke Date: Wed, 1 Jun 2016 16:45:54 -0700 Subject: 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 --- swiftclient/shell.py | 5 +++++ 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 -- cgit v1.2.1