diff options
author | Jenkins <jenkins@review.openstack.org> | 2016-10-01 01:15:42 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2016-10-01 01:15:42 +0000 |
commit | 686bd837649d921b22ff9f431955e75450dfffda (patch) | |
tree | b6b518861070b002a8217150c20792cab6651512 | |
parent | de84aa1c1b43c96f818b5ca53f17702f5010c9dd (diff) | |
parent | 0a3e056cce03cdb3dbd62d8eddfaa448d5a0ad5f (diff) | |
download | os-client-config-686bd837649d921b22ff9f431955e75450dfffda.tar.gz |
Merge "Fix AttributeError in `get_config`"
-rw-r--r-- | os_client_config/__init__.py | 2 | ||||
-rw-r--r-- | os_client_config/config.py | 5 | ||||
-rw-r--r-- | os_client_config/tests/test_init.py | 33 |
3 files changed, 38 insertions, 2 deletions
diff --git a/os_client_config/__init__.py b/os_client_config/__init__.py index 09d7442..e8d7fc0 100644 --- a/os_client_config/__init__.py +++ b/os_client_config/__init__.py @@ -26,7 +26,7 @@ __version__ = pbr.version.VersionInfo('os_client_config').version_string() def get_config(service_key=None, options=None, **kwargs): config = OpenStackConfig() if options: - config.register_argparse_options(options, sys.argv, service_key) + config.register_argparse_arguments(options, sys.argv, service_key) parsed_options = options.parse_known_args(sys.argv) else: parsed_options = None diff --git a/os_client_config/config.py b/os_client_config/config.py index 646e55d..01f659e 100644 --- a/os_client_config/config.py +++ b/os_client_config/config.py @@ -641,7 +641,7 @@ class OpenStackConfig(object): # completely broken return cloud - def register_argparse_arguments(self, parser, argv, service_keys=[]): + def register_argparse_arguments(self, parser, argv, service_keys=None): """Register all of the common argparse options needed. Given an argparse parser, register the keystoneauth Session arguments, @@ -660,6 +660,9 @@ class OpenStackConfig(object): is requested """ + if service_keys is None: + service_keys = [] + # Fix argv in place - mapping any keys with embedded _ in them to - _fix_argv(argv) diff --git a/os_client_config/tests/test_init.py b/os_client_config/tests/test_init.py new file mode 100644 index 0000000..15d57f7 --- /dev/null +++ b/os_client_config/tests/test_init.py @@ -0,0 +1,33 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import argparse + +import os_client_config +from os_client_config.tests import base + + +class TestInit(base.TestCase): + def test_get_config_without_arg_parser(self): + cloud_config = os_client_config.get_config(options=None) + self.assertIsInstance( + cloud_config, + os_client_config.cloud_config.CloudConfig + ) + + def test_get_config_with_arg_parser(self): + cloud_config = os_client_config.get_config( + options=argparse.ArgumentParser()) + self.assertIsInstance( + cloud_config, + os_client_config.cloud_config.CloudConfig + ) |