diff --git a/etc/default_data.json b/etc/default_data.json index 71bb2fe4a..d9a2b5d22 100644 --- a/etc/default_data.json +++ b/etc/default_data.json @@ -6639,9 +6639,7 @@ { "company_name": "Mirantis", "end_date": "2014-Dec-31" - } - ], - "companies": [ + }, { "company_name": "*independent", "end_date": null diff --git a/tests/unit/test_config_files.py b/tests/unit/test_config_files.py index 420cc127e..997dcef35 100644 --- a/tests/unit/test_config_files.py +++ b/tests/unit/test_config_files.py @@ -21,6 +21,17 @@ import six import testtools +def dict_raise_on_duplicates(ordered_pairs): + """Reject duplicate keys.""" + d = {} + for k, v in ordered_pairs: + if k in d: + raise ValueError("duplicate key: %s (value: %s)" % (k, v)) + else: + d[k] = v + return d + + class TestConfigFiles(testtools.TestCase): def setUp(self): super(TestConfigFiles, self).setUp() @@ -55,6 +66,19 @@ class TestConfigFiles(testtools.TestCase): schema = self._read_file('etc/corrections.schema.json') jsonschema.validate(corrections, schema) + def _verify_default_data_duplicate_keys(self, file_name): + try: + json.loads(self._read_raw_file(file_name), + object_pairs_hook=dict_raise_on_duplicates) + except ValueError as ve: + self.fail(ve) + + def test_default_data_duplicate_keys(self): + self._verify_default_data_duplicate_keys('etc/default_data.json') + + def test_test_default_data_duplicate_keys(self): + self._verify_default_data_duplicate_keys('etc/test_default_data.json') + def _verify_default_data_by_schema(self, file_name): default_data = self._read_file(file_name) schema = self._read_file('etc/default_data.schema.json')