Skip to content

Commit c8ae180

Browse files
CPython developersyouknowone
authored andcommitted
Update test_deque from CPython 3.10.5
1 parent 7580e11 commit c8ae180

File tree

1 file changed

+19
-39
lines changed

1 file changed

+19
-39
lines changed

Lib/test/test_deque.py

Lines changed: 19 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from collections import deque
22
import unittest
33
from test import support, seq_tests
4-
from test.support import os_helper
54
import gc
65
import weakref
76
import copy
@@ -67,28 +66,9 @@ def test_maxlen(self):
6766
self.assertEqual(list(d), [7, 8, 9])
6867
d = deque(range(200), maxlen=10)
6968
d.append(d)
70-
os_helper.unlink(os_helper.TESTFN)
71-
fo = open(os_helper.TESTFN, "w")
72-
try:
73-
fo.write(str(d))
74-
fo.close()
75-
fo = open(os_helper.TESTFN, "r")
76-
self.assertEqual(fo.read(), repr(d))
77-
finally:
78-
fo.close()
79-
os_helper.unlink(os_helper.TESTFN)
80-
69+
self.assertEqual(repr(d)[-30:], ', 198, 199, [...]], maxlen=10)')
8170
d = deque(range(10), maxlen=None)
8271
self.assertEqual(repr(d), 'deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])')
83-
fo = open(os_helper.TESTFN, "w")
84-
try:
85-
fo.write(str(d))
86-
fo.close()
87-
fo = open(os_helper.TESTFN, "r")
88-
self.assertEqual(fo.read(), repr(d))
89-
finally:
90-
fo.close()
91-
os_helper.unlink(os_helper.TESTFN)
9272

9373
def test_maxlen_zero(self):
9474
it = iter(range(100))
@@ -149,7 +129,8 @@ def __eq__(self, other):
149129
self.assertEqual(d.count(None), 16)
150130

151131
def test_comparisons(self):
152-
d = deque('xabc'); d.popleft()
132+
d = deque('xabc')
133+
d.popleft()
153134
for e in [d, deque('abc'), deque('ab'), deque(), list(d)]:
154135
self.assertEqual(d==e, type(d)==type(e) and list(d)==list(e))
155136
self.assertEqual(d!=e, not(type(d)==type(e) and list(d)==list(e)))
@@ -184,6 +165,18 @@ def test_contains(self):
184165
with self.assertRaises(RuntimeError):
185166
n in d
186167

168+
def test_contains_count_stop_crashes(self):
169+
class A:
170+
def __eq__(self, other):
171+
d.clear()
172+
return NotImplemented
173+
d = deque([A(), A()])
174+
with self.assertRaises(RuntimeError):
175+
_ = 3 in d
176+
d = deque([A(), A()])
177+
with self.assertRaises(RuntimeError):
178+
_ = d.count(3)
179+
187180
def test_extend(self):
188181
d = deque('a')
189182
self.assertRaises(TypeError, d.extend, 1)
@@ -534,25 +527,11 @@ def test_repr(self):
534527
e = eval(repr(d))
535528
self.assertEqual(list(d), list(e))
536529
d.append(d)
537-
self.assertIn('...', repr(d))
538-
539-
def test_print(self):
540-
d = deque(range(200))
541-
d.append(d)
542-
try:
543-
os_helper.unlink(os_helper.TESTFN)
544-
fo = open(os_helper.TESTFN, "w")
545-
print(d, file=fo, end='')
546-
fo.close()
547-
fo = open(os_helper.TESTFN, "r")
548-
self.assertEqual(fo.read(), repr(d))
549-
finally:
550-
fo.close()
551-
os_helper.unlink(os_helper.TESTFN)
530+
self.assertEqual(repr(d)[-20:], '7, 198, 199, [...]])')
552531

553532
def test_init(self):
554-
self.assertRaises(TypeError, deque, 'abc', 2, 3);
555-
self.assertRaises(TypeError, deque, 1);
533+
self.assertRaises(TypeError, deque, 'abc', 2, 3)
534+
self.assertRaises(TypeError, deque, 1)
556535

557536
def test_hash(self):
558537
self.assertRaises(TypeError, hash, deque('abc'))
@@ -894,6 +873,7 @@ def test_weakref(self):
894873
p = weakref.proxy(d)
895874
self.assertEqual(str(p), str(d))
896875
d = None
876+
support.gc_collect() # For PyPy or other GCs.
897877
self.assertRaises(ReferenceError, str, p)
898878

899879
def test_strange_subclass(self):

0 commit comments

Comments
 (0)