Avoid duplicate keys in default_data
Change-Id: Id31fc589266d3a9a22f0e3f6a48cad8dd3130c87
This commit is contained in:
@@ -6639,9 +6639,7 @@
|
|||||||
{
|
{
|
||||||
"company_name": "Mirantis",
|
"company_name": "Mirantis",
|
||||||
"end_date": "2014-Dec-31"
|
"end_date": "2014-Dec-31"
|
||||||
}
|
},
|
||||||
],
|
|
||||||
"companies": [
|
|
||||||
{
|
{
|
||||||
"company_name": "*independent",
|
"company_name": "*independent",
|
||||||
"end_date": null
|
"end_date": null
|
||||||
|
@@ -21,6 +21,17 @@ import six
|
|||||||
import testtools
|
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):
|
class TestConfigFiles(testtools.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestConfigFiles, self).setUp()
|
super(TestConfigFiles, self).setUp()
|
||||||
@@ -55,6 +66,19 @@ class TestConfigFiles(testtools.TestCase):
|
|||||||
schema = self._read_file('etc/corrections.schema.json')
|
schema = self._read_file('etc/corrections.schema.json')
|
||||||
jsonschema.validate(corrections, schema)
|
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):
|
def _verify_default_data_by_schema(self, file_name):
|
||||||
default_data = self._read_file(file_name)
|
default_data = self._read_file(file_name)
|
||||||
schema = self._read_file('etc/default_data.schema.json')
|
schema = self._read_file('etc/default_data.schema.json')
|
||||||
|
Reference in New Issue
Block a user