aboutsummaryrefslogtreecommitdiff
path: root/absl
diff options
context:
space:
mode:
Diffstat (limited to 'absl')
-rwxr-xr-xabsl/testing/parameterized.py4
-rwxr-xr-xabsl/testing/tests/parameterized_test.py22
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