diff options
author | Monty Taylor <mordred@inaugust.com> | 2015-11-20 12:10:16 -0500 |
---|---|---|
committer | Monty Taylor <mordred@inaugust.com> | 2015-11-20 12:10:16 -0500 |
commit | 9c59002116e755d9ac7f14b11c3774c6848d4a3c (patch) | |
tree | 924563ff66f323268d885e6d55884c36b1264c4c | |
parent | 10e96bcb7bed2ca8eaf0185b46dbb882bd8b2b7c (diff) | |
download | os-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.py | 2 | ||||
-rw-r--r-- | os_client_config/tests/test_environ.py | 40 |
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') |