summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Pittier <jordan.pittier@scality.com>2016-09-26 17:22:27 +0200
committerJordan Pittier <jordan.pittier@scality.com>2016-09-26 17:24:12 +0200
commit0a3e056cce03cdb3dbd62d8eddfaa448d5a0ad5f (patch)
treeac3b2f1bfa29953ac69c79c059b8e1eed9f88815
parent7d401cd5a6537a9c6296d67e33addcc20a62eeb6 (diff)
downloados-client-config-0a3e056cce03cdb3dbd62d8eddfaa448d5a0ad5f.tar.gz
Fix AttributeError in `get_config`
Change-Id: I52bdc44800da6c1393a69c4faf96375235ef98bb Closes-Bug: #1627690
-rw-r--r--os_client_config/__init__.py2
-rw-r--r--os_client_config/config.py5
-rw-r--r--os_client_config/tests/test_init.py33
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
+ )