Skip to content

Commit 385b389

Browse files
gh-125038: Improvements in tests: self.subTest is used
1 parent b94d5c4 commit 385b389

File tree

1 file changed

+38
-17
lines changed

1 file changed

+38
-17
lines changed

Lib/test/test_generators.py

+38-17
Original file line numberDiff line numberDiff line change
@@ -275,9 +275,9 @@ class ModifyTest(unittest.TestCase):
275275
range(20),
276276
[1, 2, 3],
277277
(2,),
278-
set((13, 48, 211)),
278+
{13, 48, 211},
279279
frozenset((15, 8, 6)),
280-
dict([(1, 2), (3, 4)]),
280+
{1: 2, 3: 4},
281281
]
282282

283283
non_sequences = [
@@ -308,16 +308,27 @@ def get_genexpr_gi_code(self, new_iter):
308308
err_msg_pattern_genexpr = "'%s' object is not an iterator"
309309

310310
for get_genexpr in [get_genexpr_f_locals, get_genexpr_gi_code]:
311+
base_name = get_genexpr.__name__
311312
for seq in self.sequences:
312-
err_msg_genexpr = err_msg_pattern_genexpr % type(seq).__name__
313-
with self.assertRaisesRegex(TypeError, err_msg_genexpr):
314-
list(get_genexpr(self, seq))
315-
self.assertListEqual(list(get_genexpr(self, iter(seq))),
316-
list(seq))
313+
test_name = f"{base_name}_seq_{type(seq).__name__}"
314+
g_seq = get_genexpr(self, seq)
315+
err_msg = err_msg_pattern_genexpr % type(seq).__name__
316+
with self.subTest(test_name, g_seq=g_seq, err_msg=err_msg):
317+
with self.assertRaisesRegex(TypeError, err_msg):
318+
list(g_seq)
319+
320+
test_name = f"{base_name}_seq_iter_{type(seq).__name__}"
321+
g_iter = get_genexpr(self, iter(seq))
322+
with self.subTest(test_name, g_iter=g_iter, seq=seq):
323+
self.assertListEqual(list(g_iter), list(seq))
324+
317325
for obj in self.non_sequences:
318-
err_msg_genexpr = err_msg_pattern_genexpr % type(obj).__name__
319-
with self.assertRaisesRegex(TypeError, err_msg_genexpr):
320-
list(get_genexpr(self, obj))
326+
test_name = f"{base_name}_non_seq_{type(obj).__name__}"
327+
g_obj = get_genexpr(self, obj)
328+
err_msg = err_msg_pattern_genexpr % type(obj).__name__
329+
with self.subTest(test_name, g_obj=g_obj, err_msg=err_msg):
330+
with self.assertRaisesRegex(TypeError, err_msg):
331+
list(g_obj)
321332

322333
def test_modify_genfunc(self):
323334
def genfunc():
@@ -335,15 +346,25 @@ def get_genfunc_gi_code(self, new_iter):
335346
err_msg_pattern_fn_call = "'%s' object is not iterable"
336347

337348
for get_genfunc in [get_genfunc_f_locals, get_genfunc_gi_code]:
349+
base_name = get_genfunc.__name__
338350
for seq in self.sequences:
339-
self.assertListEqual(list(get_genfunc(self, seq)),
340-
list(seq))
341-
self.assertListEqual(list(get_genfunc(self, iter(seq))),
342-
list(seq))
351+
test_name = f"{base_name}_seq_{type(seq).__name__}"
352+
g_seq = get_genfunc(self, seq)
353+
with self.subTest(test_name, g_seq=g_seq, seq=seq):
354+
self.assertListEqual(list(g_seq), list(seq))
355+
356+
test_name = f"{base_name}_seq_iter_{type(seq).__name__}"
357+
g_iter = get_genfunc(self, iter(seq))
358+
with self.subTest(test_name, g_iter=g_iter, seq=seq):
359+
self.assertListEqual(list(g_iter), list(seq))
360+
343361
for obj in self.non_sequences:
344-
err_msg_fn_call = err_msg_pattern_fn_call % type(obj).__name__
345-
with self.assertRaisesRegex(TypeError, err_msg_fn_call):
346-
list(get_genfunc(self, obj))
362+
test_name = f"{base_name}_non_seq_{type(obj).__name__}"
363+
g_obj = get_genfunc(self, obj)
364+
err_msg = err_msg_pattern_fn_call % type(obj).__name__
365+
with self.subTest(test_name, g_obj=g_obj, err_msg=err_msg):
366+
with self.assertRaisesRegex(TypeError, err_msg):
367+
list(g_obj)
347368

348369

349370
class ExceptionTest(unittest.TestCase):

0 commit comments

Comments
 (0)