summaryrefslogtreecommitdiff
path: root/heat/tests/test_common_env_util.py
diff options
context:
space:
mode:
authorThomas Herve <therve@redhat.com>2017-03-02 17:01:33 +0100
committerThomas Herve <therve@redhat.com>2017-03-02 22:03:20 +0100
commit16999806e6a16548cdf87d9f475ef4dd16f28a5f (patch)
tree1a2e781636e7daf96418e3868f2a6dd1090cdbc3 /heat/tests/test_common_env_util.py
parenta77ef390481d9e3fae9b23032d40f03254529b83 (diff)
downloadheat-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.py30
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'])