diff options
author | Thomas Herve <therve@redhat.com> | 2017-03-02 17:01:33 +0100 |
---|---|---|
committer | Thomas Herve <therve@redhat.com> | 2017-03-02 22:03:20 +0100 |
commit | 16999806e6a16548cdf87d9f475ef4dd16f28a5f (patch) | |
tree | 1a2e781636e7daf96418e3868f2a6dd1090cdbc3 /heat/tests/test_common_env_util.py | |
parent | a77ef390481d9e3fae9b23032d40f03254529b83 (diff) | |
download | heat-16999806e6a16548cdf87d9f475ef4dd16f28a5f.tar.gz |
Handle zero values when merging environments
When merging multiple envs, 0 values where ignored in later envs, not
taking precedence. This fixes it by checking for None instead.
Change-Id: Ia0da6988f92825bcc9a19dd3dcce771baa978a59
Closes-Bug: #1669442
Diffstat (limited to 'heat/tests/test_common_env_util.py')
-rw-r--r-- | heat/tests/test_common_env_util.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/heat/tests/test_common_env_util.py b/heat/tests/test_common_env_util.py index ddfcedba1..dff4c9c3d 100644 --- a/heat/tests/test_common_env_util.py +++ b/heat/tests/test_common_env_util.py @@ -248,3 +248,33 @@ class TestMergeEnvironments(common.HeatTestCase): 'parameter_defaults': {}} self.assertEqual(expected, self.params) + + def test_merge_envs_with_zeros(self): + env1 = {'parameter_defaults': {'value1': 1}} + env2 = {'parameter_defaults': {'value1': 0}} + files = {'env_1': json.dumps(env1), + 'env_2': json.dumps(env2)} + environment_files = ['env_1', 'env_2'] + + param_schemata = { + 'value1': parameters.Schema(parameters.Schema.NUMBER)} + env_util.merge_environments(environment_files, files, self.params, + param_schemata) + + self.assertEqual({'value1': 0}, self.params['parameter_defaults']) + + def test_merge_envs_with_zeros_in_maps(self): + env1 = {'parameter_defaults': {'value1': {'foo': 1}}} + env2 = {'parameter_defaults': {'value1': {'foo': 0}}, + 'parameter_merge_strategies': {'value1': 'deep_merge'}} + files = {'env_1': json.dumps(env1), + 'env_2': json.dumps(env2)} + environment_files = ['env_1', 'env_2'] + + param_schemata = { + 'value1': parameters.Schema(parameters.Schema.MAP)} + env_util.merge_environments(environment_files, files, self.params, + param_schemata) + + self.assertEqual({'value1': {'foo': 0}}, + self.params['parameter_defaults']) |