Skip to content

Commit 7aa00b4

Browse files
gh-125038: Further improvements in tests
1 parent 385b389 commit 7aa00b4

File tree

1 file changed

+28
-42
lines changed

1 file changed

+28
-42
lines changed

Lib/test/test_generators.py

+28-42
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ def loop():
270270

271271

272272
class ModifyTest(unittest.TestCase):
273-
sequences = [
273+
iterables = [
274274
range(0),
275275
range(20),
276276
[1, 2, 3],
@@ -280,7 +280,7 @@ class ModifyTest(unittest.TestCase):
280280
{1: 2, 3: 4},
281281
]
282282

283-
non_sequences = [
283+
non_iterables = [
284284
None,
285285
42,
286286
3.0,
@@ -305,30 +305,22 @@ def get_genexpr_f_locals(self, new_iter):
305305
def get_genexpr_gi_code(self, new_iter):
306306
return self.new_gen_from_gi_code(genexpr(), new_iter)
307307

308-
err_msg_pattern_genexpr = "'%s' object is not an iterator"
308+
err_regex = "'.*' 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__
312-
for seq in self.sequences:
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-
325-
for obj in self.non_sequences:
326-
test_name = f"{base_name}_non_seq_{type(obj).__name__}"
311+
for obj in self.iterables:
327312
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)
313+
with self.subTest(g_obj=g_obj, err_regex=err_regex):
314+
self.assertRaisesRegex(TypeError, err_regex, list, g_obj)
315+
316+
g_iter = get_genexpr(self, iter(obj))
317+
with self.subTest(g_iter=g_iter, obj=obj):
318+
self.assertListEqual(list(g_iter), list(obj))
319+
320+
for obj in self.non_iterables:
321+
g_obj = get_genexpr(self, obj)
322+
with self.subTest(g_obj=g_obj, err_regex=err_regex):
323+
self.assertRaisesRegex(TypeError, err_regex, list, g_obj)
332324

333325
def test_modify_genfunc(self):
334326
def genfunc():
@@ -343,28 +335,22 @@ def get_genfunc_f_locals(self, new_iter):
343335
def get_genfunc_gi_code(self, new_iter):
344336
return self.new_gen_from_gi_code(genfunc(), new_iter)
345337

346-
err_msg_pattern_fn_call = "'%s' object is not iterable"
338+
err_regex = "'.*' object is not iterable"
347339

348340
for get_genfunc in [get_genfunc_f_locals, get_genfunc_gi_code]:
349-
base_name = get_genfunc.__name__
350-
for seq in self.sequences:
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-
361-
for obj in self.non_sequences:
362-
test_name = f"{base_name}_non_seq_{type(obj).__name__}"
341+
for obj in self.iterables:
342+
g_obj = get_genfunc(self, obj)
343+
with self.subTest(g_obj=g_obj, obj=obj):
344+
self.assertListEqual(list(g_obj), list(obj))
345+
346+
g_iter = get_genfunc(self, iter(obj))
347+
with self.subTest(g_iter=g_iter, obj=obj):
348+
self.assertListEqual(list(g_iter), list(obj))
349+
350+
for obj in self.non_iterables:
363351
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)
352+
with self.subTest(g_obj=g_obj, err_regex=err_regex):
353+
self.assertRaisesRegex(TypeError, err_regex, list, g_obj)
368354

369355

370356
class ExceptionTest(unittest.TestCase):

0 commit comments

Comments
 (0)