diff options
Diffstat (limited to 'openstackclient')
-rw-r--r-- | openstackclient/shell.py | 25 | ||||
-rw-r--r-- | openstackclient/tests/functional/base.py | 11 | ||||
-rw-r--r-- | openstackclient/tests/unit/fakes.py | 26 | ||||
-rw-r--r-- | openstackclient/tests/unit/integ/base.py | 21 | ||||
-rw-r--r-- | openstackclient/tests/unit/integ/cli/test_project.py | 4 | ||||
-rw-r--r-- | openstackclient/tests/unit/integ/cli/test_shell.py | 22 | ||||
-rw-r--r-- | openstackclient/tests/unit/test_shell.py | 53 | ||||
-rw-r--r-- | openstackclient/tests/unit/utils.py | 19 |
8 files changed, 91 insertions, 90 deletions
diff --git a/openstackclient/shell.py b/openstackclient/shell.py index 1be298be..68ebf8a4 100644 --- a/openstackclient/shell.py +++ b/openstackclient/shell.py @@ -31,14 +31,13 @@ DEFAULT_DOMAIN = 'default' class OpenStackShell(shell.OpenStackShell): - def __init__(self): - super(OpenStackShell, self).__init__( description=__doc__.strip(), version=openstackclient.__version__, command_manager=commandmanager.CommandManager('openstack.cli'), - deferred_help=True) + deferred_help=True, + ) self.api_version = {} @@ -51,8 +50,8 @@ class OpenStackShell(shell.OpenStackShell): def build_option_parser(self, description, version): parser = super(OpenStackShell, self).build_option_parser( - description, - version) + description, version + ) parser = clientmanager.build_plugin_option_parser(parser) parser = auth.build_auth_plugins_option_parser(parser) return parser @@ -61,7 +60,7 @@ class OpenStackShell(shell.OpenStackShell): super(OpenStackShell, self)._final_defaults() # Set the default plugin to admin_token if endpoint and token are given - if (self.options.endpoint and self.options.token): + if self.options.endpoint and self.options.token: # Use token authentication self._auth_type = 'admin_token' else: @@ -96,10 +95,12 @@ class OpenStackShell(shell.OpenStackShell): if version_opt not in mod_versions: sorted_versions = sorted( mod.API_VERSIONS.keys(), - key=lambda s: list(map(int, s.split('.')))) + key=lambda s: list(map(int, s.split('.'))), + ) self.log.warning( "%s version %s is not in supported versions: %s" - % (api, version_opt, ', '.join(sorted_versions))) + % (api, version_opt, ', '.join(sorted_versions)) + ) # Command groups deal only with major versions version = '.v' + version_opt.replace('.', '_').split('_')[0] @@ -107,7 +108,7 @@ class OpenStackShell(shell.OpenStackShell): self.command_manager.add_command_group(cmd_group) self.log.debug( '%(name)s API version %(version)s, cmd group %(group)s', - {'name': api, 'version': version_opt, 'group': cmd_group} + {'name': api, 'version': version_opt, 'group': cmd_group}, ) def _load_commands(self): @@ -116,8 +117,7 @@ class OpenStackShell(shell.OpenStackShell): osc-lib has no opinion on what commands should be loaded """ # Commands that span multiple APIs - self.command_manager.add_command_group( - 'openstack.common') + self.command_manager.add_command_group('openstack.common') # This is the naive extension implementation referred to in # blueprint 'client-extensions' @@ -129,8 +129,7 @@ class OpenStackShell(shell.OpenStackShell): # 'show_repo=qaz.github.repo:ShowRepo', # ], # } - self.command_manager.add_command_group( - 'openstack.extension') + self.command_manager.add_command_group('openstack.extension') def initialize_app(self, argv): super(OpenStackShell, self).initialize_app(argv) diff --git a/openstackclient/tests/functional/base.py b/openstackclient/tests/functional/base.py index 0c430267..9b4235be 100644 --- a/openstackclient/tests/functional/base.py +++ b/openstackclient/tests/functional/base.py @@ -40,14 +40,16 @@ def execute(cmd, fail_ok=False, merge_stderr=False): if not fail_ok and proc.returncode != 0: raise exceptions.CommandFailed( - proc.returncode, cmd, result_out, result_err, + proc.returncode, + cmd, + result_out, + result_err, ) return result_out class TestCase(testtools.TestCase): - @classmethod def openstack( cls, @@ -128,8 +130,9 @@ class TestCase(testtools.TestCase): @classmethod def get_opts(cls, fields, output_format='value'): - return ' -f {0} {1}'.format(output_format, - ' '.join(['-c ' + it for it in fields])) + return ' -f {0} {1}'.format( + output_format, ' '.join(['-c ' + it for it in fields]) + ) @classmethod def assertOutput(cls, expected, actual): diff --git a/openstackclient/tests/unit/fakes.py b/openstackclient/tests/unit/fakes.py index 086c2466..dd742885 100644 --- a/openstackclient/tests/unit/fakes.py +++ b/openstackclient/tests/unit/fakes.py @@ -29,8 +29,7 @@ REGION_NAME = "richie" INTERFACE = "catchy" VERSION = "3" -TEST_RESPONSE_DICT = fixture.V2Token(token_id=AUTH_TOKEN, - user_name=USERNAME) +TEST_RESPONSE_DICT = fixture.V2Token(token_id=AUTH_TOKEN, user_name=USERNAME) _s = TEST_RESPONSE_DICT.add_service('identity', name='keystone') _s.add_endpoint(AUTH_URL + ':5000/v2.0') _s = TEST_RESPONSE_DICT.add_service('network', name='neutron') @@ -49,7 +48,6 @@ TEST_VERSIONS = fixture.DiscoveryList(href=AUTH_URL) class FakeStdout(object): - def __init__(self): self.content = [] @@ -64,7 +62,6 @@ class FakeStdout(object): class FakeLog(object): - def __init__(self): self.messages = {} @@ -85,7 +82,6 @@ class FakeLog(object): class FakeApp(object): - def __init__(self, _stdout, _log): self.stdout = _stdout self.client_manager = None @@ -102,7 +98,6 @@ class FakeOptions(object): class FakeClient(object): - def __init__(self, **kwargs): self.endpoint = kwargs['endpoint'] self.token = kwargs['token'] @@ -131,7 +126,6 @@ class FakeClientManager(object): self.configuration_type = 'cloud_config' def get_configuration(self): - config = { 'region': REGION_NAME, 'identity_api_version': VERSION, @@ -161,7 +155,6 @@ class FakeClientManager(object): class FakeModule(object): - def __init__(self, name, version): self.name = name self.__version__ = version @@ -171,7 +164,6 @@ class FakeModule(object): class FakeResource(object): - def __init__(self, manager=None, info=None, loaded=False, methods=None): """Set attributes and methods for a resource. @@ -195,7 +187,7 @@ class FakeResource(object): self._loaded = loaded def _add_details(self, info): - for (k, v) in info.items(): + for k, v in info.items(): setattr(self, k, v) def _add_methods(self, methods): @@ -206,13 +198,14 @@ class FakeResource(object): @value. When users access the attribute with (), @value will be returned, which looks like a function call. """ - for (name, ret) in methods.items(): + for name, ret in methods.items(): method = mock.Mock(return_value=ret) setattr(self, name, method) def __repr__(self): - reprkeys = sorted(k for k in self.__dict__.keys() if k[0] != '_' and - k != 'manager') + reprkeys = sorted( + k for k in self.__dict__.keys() if k[0] != '_' and k != 'manager' + ) info = ", ".join("%s=%s" % (k, getattr(self, k)) for k in reprkeys) return "<%s %s>" % (self.__class__.__name__, info) @@ -237,9 +230,9 @@ class FakeResource(object): class FakeResponse(requests.Response): - - def __init__(self, headers=None, status_code=200, - data=None, encoding=None): + def __init__( + self, headers=None, status_code=200, data=None, encoding=None + ): super(FakeResponse, self).__init__() headers = headers or {} @@ -253,7 +246,6 @@ class FakeResponse(requests.Response): class FakeModel(dict): - def __getattr__(self, key): try: return self[key] diff --git a/openstackclient/tests/unit/integ/base.py b/openstackclient/tests/unit/integ/base.py index caed4f89..5bef20b4 100644 --- a/openstackclient/tests/unit/integ/base.py +++ b/openstackclient/tests/unit/integ/base.py @@ -51,15 +51,19 @@ V3_VERSION_RESP = { "version": { "status": "stable", "updated": "2016-04-04T00:00:00Z", - "media-types": [{ - "base": "application/json", - "type": "application/vnd.openstack.identity-v3+json", - }], + "media-types": [ + { + "base": "application/json", + "type": "application/vnd.openstack.identity-v3+json", + } + ], "id": "v3.6", - "links": [{ - "href": V3_AUTH_URL, - "rel": "self", - }] + "links": [ + { + "href": V3_AUTH_URL, + "rel": "self", + } + ], } } @@ -114,7 +118,6 @@ def make_v3_token(req_mock): class TestInteg(utils.TestCase): - def setUp(self): super(TestInteg, self).setUp() diff --git a/openstackclient/tests/unit/integ/cli/test_project.py b/openstackclient/tests/unit/integ/cli/test_project.py index 4e707a37..abea0bf4 100644 --- a/openstackclient/tests/unit/integ/cli/test_project.py +++ b/openstackclient/tests/unit/integ/cli/test_project.py @@ -20,7 +20,6 @@ from openstackclient.tests.unit import test_shell class TestIntegV2ProjectID(test_base.TestInteg): - def setUp(self): super(TestIntegV2ProjectID, self).setUp() env = { @@ -78,7 +77,6 @@ class TestIntegV2ProjectID(test_base.TestInteg): class TestIntegV2ProjectName(test_base.TestInteg): - def setUp(self): super(TestIntegV2ProjectName, self).setUp() env = { @@ -136,7 +134,6 @@ class TestIntegV2ProjectName(test_base.TestInteg): class TestIntegV3ProjectID(test_base.TestInteg): - def setUp(self): super(TestIntegV3ProjectID, self).setUp() env = { @@ -192,7 +189,6 @@ class TestIntegV3ProjectID(test_base.TestInteg): class TestIntegV3ProjectName(test_base.TestInteg): - def setUp(self): super(TestIntegV3ProjectName, self).setUp() env = { diff --git a/openstackclient/tests/unit/integ/cli/test_shell.py b/openstackclient/tests/unit/integ/cli/test_shell.py index 5788b473..9cd70134 100644 --- a/openstackclient/tests/unit/integ/cli/test_shell.py +++ b/openstackclient/tests/unit/integ/cli/test_shell.py @@ -22,7 +22,6 @@ from openstackclient.tests.unit import test_shell class TestIntegShellCliNoAuth(test_base.TestInteg): - def setUp(self): super(TestIntegShellCliNoAuth, self).setUp() env = {} @@ -67,7 +66,6 @@ class TestIntegShellCliNoAuth(test_base.TestInteg): class TestIntegShellCliV2(test_base.TestInteg): - def setUp(self): super(TestIntegShellCliV2, self).setUp() env = { @@ -155,7 +153,6 @@ class TestIntegShellCliV2(test_base.TestInteg): class TestIntegShellCliV2Ignore(test_base.TestInteg): - def setUp(self): super(TestIntegShellCliV2Ignore, self).setUp() env = { @@ -202,7 +199,6 @@ class TestIntegShellCliV2Ignore(test_base.TestInteg): class TestIntegShellCliV3(test_base.TestInteg): - def setUp(self): super(TestIntegShellCliV3, self).setUp() env = { @@ -293,7 +289,6 @@ class TestIntegShellCliV3(test_base.TestInteg): class TestIntegShellCliV3Prompt(test_base.TestInteg): - def setUp(self): super(TestIntegShellCliV3Prompt, self).setUp() env = { @@ -318,8 +313,7 @@ class TestIntegShellCliV3Prompt(test_base.TestInteg): # Check password callback set correctly self.assertEqual( - mock_prompt, - _shell.cloud._openstack_config._pw_callback + mock_prompt, _shell.cloud._openstack_config._pw_callback ) # Check auth request @@ -358,8 +352,9 @@ class TestIntegShellCliPrecedence(test_base.TestInteg): self.token = test_base.make_v3_token(self.requests_mock) # Patch a v3 auth URL into the o-c-c data - test_shell.PUBLIC_1['public-clouds']['megadodo']['auth']['auth_url'] \ - = test_base.V3_AUTH_URL + test_shell.PUBLIC_1['public-clouds']['megadodo']['auth'][ + 'auth_url' + ] = test_base.V3_AUTH_URL def test_shell_args_options(self): """Verify command line options override environment variables""" @@ -432,8 +427,9 @@ class TestIntegShellCliPrecedenceOCC(test_base.TestInteg): self.token = test_base.make_v3_token(self.requests_mock) # Patch a v3 auth URL into the o-c-c data - test_shell.PUBLIC_1['public-clouds']['megadodo']['auth']['auth_url'] \ - = test_base.V3_AUTH_URL + test_shell.PUBLIC_1['public-clouds']['megadodo']['auth'][ + 'auth_url' + ] = test_base.V3_AUTH_URL def get_temp_file_path(self, filename): """Returns an absolute path for a temporary file. @@ -457,10 +453,12 @@ class TestIntegShellCliPrecedenceOCC(test_base.TestInteg): log_file = self.get_temp_file_path('test_log_file') cloud2 = test_shell.get_cloud(log_file) return ('file.yaml', cloud2) + config_mock.side_effect = config_mock_return def vendor_mock_return(): return ('file.yaml', copy.deepcopy(test_shell.PUBLIC_1)) + vendor_mock.side_effect = vendor_mock_return _shell = shell.OpenStackShell() @@ -528,10 +526,12 @@ class TestIntegShellCliPrecedenceOCC(test_base.TestInteg): log_file = self.get_temp_file_path('test_log_file') cloud2 = test_shell.get_cloud(log_file) return ('file.yaml', cloud2) + config_mock.side_effect = config_mock_return def vendor_mock_return(): return ('file.yaml', copy.deepcopy(test_shell.PUBLIC_1)) + vendor_mock.side_effect = vendor_mock_return _shell = shell.OpenStackShell() diff --git a/openstackclient/tests/unit/test_shell.py b/openstackclient/tests/unit/test_shell.py index bee2b401..4081b670 100644 --- a/openstackclient/tests/unit/test_shell.py +++ b/openstackclient/tests/unit/test_shell.py @@ -96,7 +96,7 @@ global_options = { '--os-cacert': ('/dev/null', True, True), '--timing': (True, True, False), '--os-profile': ('SECRET_KEY', True, False), - '--os-interface': (DEFAULT_INTERFACE, True, True) + '--os-interface': (DEFAULT_INTERFACE, True, True), } @@ -138,7 +138,6 @@ wrapt.wrap_function_wrapper( class TestShell(osc_lib_test_utils.TestShell): - # Full name of the OpenStackShell class to test (cliff.app.App subclass) shell_class_name = "openstackclient.shell.OpenStackShell" @@ -179,8 +178,8 @@ class TestShell(osc_lib_test_utils.TestShell): def _assert_token_auth(self, cmd_options, default_args): with mock.patch( - self.app_patch + ".initialize_app", - self.app, + self.app_patch + ".initialize_app", + self.app, ): _shell = osc_lib_test_utils.make_shell( shell_class=self.shell_class, @@ -191,20 +190,18 @@ class TestShell(osc_lib_test_utils.TestShell): self.app.assert_called_with(["list", "role"]) self.assertEqual( - default_args.get("token", ''), - _shell.options.token, - "token" + default_args.get("token", ''), _shell.options.token, "token" ) self.assertEqual( default_args.get("auth_url", ''), _shell.options.auth_url, - "auth_url" + "auth_url", ) def _assert_cli(self, cmd_options, default_args): with mock.patch( - self.shell_class_name + ".initialize_app", - self.app, + self.shell_class_name + ".initialize_app", + self.app, ): _shell = osc_lib_test_utils.make_shell( shell_class=self.shell_class, @@ -213,20 +210,29 @@ class TestShell(osc_lib_test_utils.TestShell): osc_lib_test_utils.fake_execute(_shell, _cmd) self.app.assert_called_with(["list", "server"]) - self.assertEqual(default_args["compute_api_version"], - _shell.options.os_compute_api_version) - self.assertEqual(default_args["identity_api_version"], - _shell.options.os_identity_api_version) - self.assertEqual(default_args["image_api_version"], - _shell.options.os_image_api_version) - self.assertEqual(default_args["volume_api_version"], - _shell.options.os_volume_api_version) - self.assertEqual(default_args["network_api_version"], - _shell.options.os_network_api_version) + self.assertEqual( + default_args["compute_api_version"], + _shell.options.os_compute_api_version, + ) + self.assertEqual( + default_args["identity_api_version"], + _shell.options.os_identity_api_version, + ) + self.assertEqual( + default_args["image_api_version"], + _shell.options.os_image_api_version, + ) + self.assertEqual( + default_args["volume_api_version"], + _shell.options.os_volume_api_version, + ) + self.assertEqual( + default_args["network_api_version"], + _shell.options.os_network_api_version, + ) class TestShellOptions(TestShell): - def setUp(self): super(TestShellOptions, self).setUp() self.useFixture(osc_lib_test_utils.EnvFixture()) @@ -289,7 +295,6 @@ class TestShellOptions(TestShell): class TestShellTokenAuthEnv(TestShell): - def setUp(self): super(TestShellTokenAuthEnv, self).setUp() env = { @@ -333,7 +338,6 @@ class TestShellTokenAuthEnv(TestShell): class TestShellTokenEndpointAuthEnv(TestShell): - def setUp(self): super(TestShellTokenEndpointAuthEnv, self).setUp() env = { @@ -377,7 +381,6 @@ class TestShellTokenEndpointAuthEnv(TestShell): class TestShellCli(TestShell): - def setUp(self): super(TestShellCli, self).setUp() env = { @@ -408,6 +411,6 @@ class TestShellCli(TestShell): "identity_api_version": LIB_IDENTITY_API_VERSION, "image_api_version": LIB_IMAGE_API_VERSION, "volume_api_version": LIB_VOLUME_API_VERSION, - "network_api_version": LIB_NETWORK_API_VERSION + "network_api_version": LIB_NETWORK_API_VERSION, } self._assert_cli(flag, kwargs) diff --git a/openstackclient/tests/unit/utils.py b/openstackclient/tests/unit/utils.py index 39cb5614..fa16389a 100644 --- a/openstackclient/tests/unit/utils.py +++ b/openstackclient/tests/unit/utils.py @@ -29,22 +29,26 @@ class ParserException(Exception): class CompareBySet(list): """Class to compare value using set.""" + def __eq__(self, other): return set(self) == set(other) class TestCase(testtools.TestCase): - def setUp(self): testtools.TestCase.setUp(self) - if (os.environ.get("OS_STDOUT_CAPTURE") == "True" or - os.environ.get("OS_STDOUT_CAPTURE") == "1"): + if ( + os.environ.get("OS_STDOUT_CAPTURE") == "True" + or os.environ.get("OS_STDOUT_CAPTURE") == "1" + ): stdout = self.useFixture(fixtures.StringStream("stdout")).stream self.useFixture(fixtures.MonkeyPatch("sys.stdout", stdout)) - if (os.environ.get("OS_STDERR_CAPTURE") == "True" or - os.environ.get("OS_STDERR_CAPTURE") == "1"): + if ( + os.environ.get("OS_STDERR_CAPTURE") == "True" + or os.environ.get("OS_STDERR_CAPTURE") == "1" + ): stderr = self.useFixture(fixtures.StringStream("stderr")).stream self.useFixture(fixtures.MonkeyPatch("sys.stderr", stderr)) @@ -76,8 +80,9 @@ class TestCommand(TestCase): try: parsed_args = cmd_parser.parse_args(args) except SystemExit: - raise ParserException("Argument parse failed: %s" % - stderr.getvalue()) + raise ParserException( + "Argument parse failed: %s" % stderr.getvalue() + ) for av in verify_args: attr, value = av if attr: |