diff options
Diffstat (limited to 'absl')
-rwxr-xr-x | absl/testing/parameterized.py | 4 | ||||
-rwxr-xr-x | absl/testing/tests/parameterized_test.py | 22 |
2 files changed, 26 insertions, 0 deletions
diff --git a/absl/testing/parameterized.py b/absl/testing/parameterized.py index a7cc88b..b67aaeb 100755 --- a/absl/testing/parameterized.py +++ b/absl/testing/parameterized.py @@ -281,6 +281,10 @@ class _ParameterizedTestIter(object): testcase_params = {k: v for k, v in six.iteritems(testcase_params) if k != _NAMED_DICT_KEY} elif _non_string_or_bytes_iterable(testcase_params): + if not isinstance(testcase_params[0], six.string_types): + raise RuntimeError( + 'The first element of named test parameters is the test name ' + 'suffix and must be a string') testcase_name = testcase_params[0] testcase_params = testcase_params[1:] else: diff --git a/absl/testing/tests/parameterized_test.py b/absl/testing/tests/parameterized_test.py index 4235675..85f8e9b 100755 --- a/absl/testing/tests/parameterized_test.py +++ b/absl/testing/tests/parameterized_test.py @@ -677,6 +677,28 @@ class ParameterizedTestsTest(absltest.TestCase): def test_mixed_something(self, unused_obj): pass + def test_named_test_with_no_name_fails(self): + with self.assertRaises(RuntimeError): + + class _(parameterized.TestCase): + + @parameterized.named_parameters( + (0,), + ) + def test_something(self, unused_obj): + pass + + def test_named_test_dict_with_no_name_fails(self): + with self.assertRaises(RuntimeError): + + class _(parameterized.TestCase): + + @parameterized.named_parameters( + {'unused_obj': 0}, + ) + def test_something(self, unused_obj): + pass + def test_parameterized_test_iter_has_testcases_property(self): @parameterized.parameters(1, 2, 3, 4, 5, 6) def test_something(unused_self, unused_obj): # pylint: disable=invalid-name |