summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonty Taylor <mordred@inaugust.com>2015-11-20 12:10:16 -0500
committerMonty Taylor <mordred@inaugust.com>2015-11-20 12:10:16 -0500
commit9c59002116e755d9ac7f14b11c3774c6848d4a3c (patch)
tree924563ff66f323268d885e6d55884c36b1264c4c
parent10e96bcb7bed2ca8eaf0185b46dbb882bd8b2b7c (diff)
downloados-client-config-9c59002116e755d9ac7f14b11c3774c6848d4a3c.tar.gz
Fix lack of parenthesis around boolean logic1.11.1
The legacy envvar prefix support broke a workaround for use of OS_ envvars in test cases. This is only currently a problem for shade functional tests, but it IS a bug. Change-Id: Ia0cbb4e2ea7ce6eeeea36533e057bd53a830d44c
-rw-r--r--os_client_config/config.py2
-rw-r--r--os_client_config/tests/test_environ.py40
2 files changed, 41 insertions, 1 deletions
diff --git a/os_client_config/config.py b/os_client_config/config.py
index 8d92c8f..5f7c402 100644
--- a/os_client_config/config.py
+++ b/os_client_config/config.py
@@ -87,7 +87,7 @@ def _get_os_environ(envvar_prefix=None):
# This makes the or below be OS_ or OS_ which is a no-op
envvar_prefix = 'OS_'
environkeys = [k for k in os.environ.keys()
- if k.startswith('OS_') or k.startswith(envvar_prefix)
+ if (k.startswith('OS_') or k.startswith(envvar_prefix))
and not k.startswith('OS_TEST') # infra CI var
and not k.startswith('OS_STD') # infra CI var
]
diff --git a/os_client_config/tests/test_environ.py b/os_client_config/tests/test_environ.py
index 1e804fc..0ff800f 100644
--- a/os_client_config/tests/test_environ.py
+++ b/os_client_config/tests/test_environ.py
@@ -111,3 +111,43 @@ class TestEnviron(base.TestCase):
vendor_files=[self.vendor_yaml])
cc = c.get_one_cloud('_test-cloud_')
self._assert_cloud_details(cc)
+
+
+class TestEnvvars(base.TestCase):
+
+ def test_no_envvars(self):
+ self.useFixture(
+ fixtures.EnvironmentVariable('NOVA_USERNAME', 'nova'))
+ c = config.OpenStackConfig(config_files=[self.cloud_yaml],
+ vendor_files=[self.vendor_yaml])
+ self.assertRaises(
+ exceptions.OpenStackConfigException, c.get_one_cloud, 'envvars')
+
+ def test_test_envvars(self):
+ self.useFixture(
+ fixtures.EnvironmentVariable('NOVA_USERNAME', 'nova'))
+ self.useFixture(
+ fixtures.EnvironmentVariable('OS_STDERR_CAPTURE', 'True'))
+ c = config.OpenStackConfig(config_files=[self.cloud_yaml],
+ vendor_files=[self.vendor_yaml])
+ self.assertRaises(
+ exceptions.OpenStackConfigException, c.get_one_cloud, 'envvars')
+
+ def test_have_envvars(self):
+ self.useFixture(
+ fixtures.EnvironmentVariable('NOVA_USERNAME', 'nova'))
+ self.useFixture(
+ fixtures.EnvironmentVariable('OS_USERNAME', 'user'))
+ c = config.OpenStackConfig(config_files=[self.cloud_yaml],
+ vendor_files=[self.vendor_yaml])
+ cc = c.get_one_cloud('envvars')
+ self.assertEqual(cc.config['auth']['username'], 'user')
+
+ def test_old_envvars(self):
+ self.useFixture(
+ fixtures.EnvironmentVariable('NOVA_USERNAME', 'nova'))
+ c = config.OpenStackConfig(config_files=[self.cloud_yaml],
+ vendor_files=[self.vendor_yaml],
+ envvar_prefix='NOVA_')
+ cc = c.get_one_cloud('envvars')
+ self.assertEqual(cc.config['auth']['username'], 'nova')