Fix AttributeError in `get_config`
Change-Id: I52bdc44800da6c1393a69c4faf96375235ef98bb Closes-Bug: #1627690
This commit is contained in:
parent
7d401cd5a6
commit
0a3e056cce
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
)
|
Loading…
Reference in New Issue