Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0cb2aaf

Browse files
committed
#18106: refactor tests to use subtests and proper assert methods. Patch by Vajrasky Kok.
1 parent 9f96789 commit 0cb2aaf

1 file changed

Lines changed: 42 additions & 35 deletions

File tree

Lib/test/test_collections.py

Lines changed: 42 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -918,23 +918,26 @@ def test_copying(self):
918918
words = Counter('which witch had which witches wrist watch'.split())
919919
update_test = Counter()
920920
update_test.update(words)
921-
for i, dup in enumerate([
922-
words.copy(),
923-
copy.copy(words),
924-
copy.deepcopy(words),
925-
pickle.loads(pickle.dumps(words, 0)),
926-
pickle.loads(pickle.dumps(words, 1)),
927-
pickle.loads(pickle.dumps(words, 2)),
928-
pickle.loads(pickle.dumps(words, -1)),
929-
eval(repr(words)),
930-
update_test,
931-
Counter(words),
932-
]):
933-
msg = (i, dup, words)
934-
self.assertTrue(dup is not words)
935-
self.assertEqual(dup, words)
936-
self.assertEqual(len(dup), len(words))
937-
self.assertEqual(type(dup), type(words))
921+
for label, dup in [
922+
('words.copy()', words.copy()),
923+
('copy.copy(words)', copy.copy(words)),
924+
('copy.deepcopy(words)', copy.deepcopy(words)),
925+
('pickle.loads(pickle.dumps(words, 0))',
926+
pickle.loads(pickle.dumps(words, 0))),
927+
('pickle.loads(pickle.dumps(words, 1))',
928+
pickle.loads(pickle.dumps(words, 1))),
929+
('pickle.loads(pickle.dumps(words, 2))',
930+
pickle.loads(pickle.dumps(words, 2))),
931+
('pickle.loads(pickle.dumps(words, -1))',
932+
pickle.loads(pickle.dumps(words, -1))),
933+
('eval(repr(words))', eval(repr(words))),
934+
('update_test', update_test),
935+
('Counter(words)', Counter(words)),
936+
]:
937+
with self.subTest(label=label):
938+
msg = "\ncopy: %s\nwords: %s" % (dup, words)
939+
self.assertIsNot(dup, words, msg)
940+
self.assertEqual(dup, words)
938941

939942
def test_copy_subclass(self):
940943
class MyCounter(Counter):
@@ -1213,24 +1216,28 @@ def test_copying(self):
12131216
od = OrderedDict(pairs)
12141217
update_test = OrderedDict()
12151218
update_test.update(od)
1216-
for i, dup in enumerate([
1217-
od.copy(),
1218-
copy.copy(od),
1219-
copy.deepcopy(od),
1220-
pickle.loads(pickle.dumps(od, 0)),
1221-
pickle.loads(pickle.dumps(od, 1)),
1222-
pickle.loads(pickle.dumps(od, 2)),
1223-
pickle.loads(pickle.dumps(od, 3)),
1224-
pickle.loads(pickle.dumps(od, -1)),
1225-
eval(repr(od)),
1226-
update_test,
1227-
OrderedDict(od),
1228-
]):
1229-
self.assertTrue(dup is not od)
1230-
self.assertEqual(dup, od)
1231-
self.assertEqual(list(dup.items()), list(od.items()))
1232-
self.assertEqual(len(dup), len(od))
1233-
self.assertEqual(type(dup), type(od))
1219+
for label, dup in [
1220+
('od.copy()', od.copy()),
1221+
('copy.copy(od)', copy.copy(od)),
1222+
('copy.deepcopy(od)', copy.deepcopy(od)),
1223+
('pickle.loads(pickle.dumps(od, 0))',
1224+
pickle.loads(pickle.dumps(od, 0))),
1225+
('pickle.loads(pickle.dumps(od, 1))',
1226+
pickle.loads(pickle.dumps(od, 1))),
1227+
('pickle.loads(pickle.dumps(od, 2))',
1228+
pickle.loads(pickle.dumps(od, 2))),
1229+
('pickle.loads(pickle.dumps(od, 3))',
1230+
pickle.loads(pickle.dumps(od, 3))),
1231+
('pickle.loads(pickle.dumps(od, -1))',
1232+
pickle.loads(pickle.dumps(od, -1))),
1233+
('eval(repr(od))', eval(repr(od))),
1234+
('update_test', update_test),
1235+
('OrderedDict(od)', OrderedDict(od)),
1236+
]:
1237+
with self.subTest(label=label):
1238+
msg = "\ncopy: %s\nod: %s" % (dup, od)
1239+
self.assertIsNot(dup, od, msg)
1240+
self.assertEqual(dup, od)
12341241

12351242
def test_yaml_linkage(self):
12361243
# Verify that __reduce__ is setup in a way that supports PyYAML's dump() feature.

0 commit comments

Comments
 (0)