diff options
author | Jenkins <jenkins@review.openstack.org> | 2016-02-11 20:22:09 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2016-02-11 20:22:09 +0000 |
commit | 2b391d47f0ba5583f57d3a37d55cccb3a5e589d5 (patch) | |
tree | ce6ca894241d66f652cd086a9e7731c5d9c524e7 | |
parent | d4090d555df149fbe8592ddb4815e9bb48972550 (diff) | |
parent | 109e8f519f103334cc49479b3fb552084eb2929a (diff) | |
download | python-swiftclient-2b391d47f0ba5583f57d3a37d55cccb3a5e589d5.tar.gz |
Merge "Fix debug and info option parsing"
-rwxr-xr-x | swiftclient/shell.py | 15 | ||||
-rw-r--r-- | tests/unit/test_shell.py | 15 |
2 files changed, 22 insertions, 8 deletions
diff --git a/swiftclient/shell.py b/swiftclient/shell.py index 4cad574..4023c8c 100755 --- a/swiftclient/shell.py +++ b/swiftclient/shell.py @@ -1102,6 +1102,13 @@ def parse_args(parser, args, enforce_requires=True): if not args: args = ['-h'] (options, args) = parser.parse_args(args) + if enforce_requires and (options.debug or options.info): + logging.getLogger("swiftclient") + if options.debug: + logging.basicConfig(level=logging.DEBUG) + logging.getLogger('iso8601').setLevel(logging.WARNING) + elif options.info: + logging.basicConfig(level=logging.INFO) if len(args) > 1 and args[1] == '--help': _help = globals().get('st_%s_help' % args[0], @@ -1461,14 +1468,6 @@ Examples: signal.signal(signal.SIGINT, immediate_exit) - if options.debug or options.info: - logging.getLogger("swiftclient") - if options.debug: - logging.basicConfig(level=logging.DEBUG) - logging.getLogger('iso8601').setLevel(logging.WARNING) - elif options.info: - logging.basicConfig(level=logging.INFO) - with OutputManager() as output: parser.usage = globals()['st_%s_help' % args[0]] diff --git a/tests/unit/test_shell.py b/tests/unit/test_shell.py index 413e6a2..7f19e61 100644 --- a/tests/unit/test_shell.py +++ b/tests/unit/test_shell.py @@ -16,6 +16,7 @@ from __future__ import unicode_literals from genericpath import getmtime import hashlib +import logging import mock import os import tempfile @@ -1296,6 +1297,20 @@ class TestSubcommandHelp(testtools.TestCase): self.assertEqual(out.strip('\n'), expected) +@mock.patch.dict(os.environ, mocked_os_environ) +class TestOptionAfterPosArg(testtools.TestCase): + @mock.patch('logging.basicConfig') + @mock.patch('swiftclient.service.Connection') + def test_option_after_posarg(self, connection, mock_logging): + argv = ["", "stat", "--info"] + swiftclient.shell.main(argv) + mock_logging.assert_called_with(level=logging.INFO) + + argv = ["", "stat", "--debug"] + swiftclient.shell.main(argv) + mock_logging.assert_called_with(level=logging.DEBUG) + + class TestBase(testtools.TestCase): """ Provide some common methods to subclasses |