diff --git a/ddt.py b/ddt.py index 747ebbf..338421a 100644 --- a/ddt.py +++ b/ddt.py @@ -191,7 +191,10 @@ def _raise_ve(*args): # pylint: disable-msg=W0613 elif isinstance(data, list): value = elem test_name = mk_test_name(name, value, i) - add_test(cls, test_name, func, value) + if isinstance(value, dict): + add_test(cls, test_name, func, **value) + else: + add_test(cls, test_name, func, value) def ddt(cls): diff --git a/test/test_data_dict_dict.json b/test/test_data_dict_dict.json new file mode 100644 index 0000000..280176c --- /dev/null +++ b/test/test_data_dict_dict.json @@ -0,0 +1,22 @@ +{ + "positive_integer_range": { + "start": 0, + "end": 2, + "value": 1 + }, + "negative_integer_range": { + "start": -2, + "end": 0, + "value": -1 + }, + "positive_real_range": { + "start": 0.0, + "end": 1.0, + "value": 0.5 + }, + "negative_real_range": { + "start": -1.0, + "end": 0.0, + "value": -0.5 + } +} \ No newline at end of file diff --git a/test/test_example.py b/test/test_example.py index cda230d..13a110c 100644 --- a/test/test_example.py +++ b/test/test_example.py @@ -31,6 +31,12 @@ def test_greater(self, value): a, b = value self.assertGreater(a, b) + @file_data("test_data_dict_dict.json") + def test_file_data_dict_dict(self, start, end, value): + self.assertLess(start, end) + self.assertLess(value, end) + self.assertGreater(value, start) + @file_data('test_data_dict.json') def test_file_data_dict(self, value): self.assertTrue(has_three_elements(value))