Update test_deque from CPython 3.10.5

This commit is contained in:
CPython developers authored and Jeong Yunwon committed 2022-07-18 03:54:49 +09:00
1 parent 7580e11320
commit c8ae1806a4
1 file changed
+19 -39
+19 -39
View File
@@ -1,7 +1,6 @@
from collections import deque
import unittest
from test import support, seq_tests
from test.support import os_helper
import gc
import weakref
import copy
@@ -67,28 +66,9 @@ class TestBasic(unittest.TestCase):
self.assertEqual(list(d), [7, 8, 9])
d = deque(range(200), maxlen=10)
d.append(d)
os_helper.unlink(os_helper.TESTFN)
fo = open(os_helper.TESTFN, "w")
try:
fo.write(str(d))
fo.close()
fo = open(os_helper.TESTFN, "r")
self.assertEqual(fo.read(), repr(d))
finally:
fo.close()
os_helper.unlink(os_helper.TESTFN)
self.assertEqual(repr(d)[-30:], ', 198, 199, [...]], maxlen=10)')
d = deque(range(10), maxlen=None)
self.assertEqual(repr(d), 'deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])')
fo = open(os_helper.TESTFN, "w")
try:
fo.write(str(d))
fo.close()
fo = open(os_helper.TESTFN, "r")
self.assertEqual(fo.read(), repr(d))
finally:
fo.close()
os_helper.unlink(os_helper.TESTFN)
def test_maxlen_zero(self):
it = iter(range(100))
@@ -149,7 +129,8 @@ class TestBasic(unittest.TestCase):
self.assertEqual(d.count(None), 16)
def test_comparisons(self):
d = deque('xabc'); d.popleft()
d = deque('xabc')
d.popleft()
for e in [d, deque('abc'), deque('ab'), deque(), list(d)]:
self.assertEqual(d==e, type(d)==type(e) and list(d)==list(e))
self.assertEqual(d!=e, not(type(d)==type(e) and list(d)==list(e)))
@@ -184,6 +165,18 @@ class TestBasic(unittest.TestCase):
with self.assertRaises(RuntimeError):
n in d
def test_contains_count_stop_crashes(self):
class A:
def __eq__(self, other):
d.clear()
return NotImplemented
d = deque([A(), A()])
with self.assertRaises(RuntimeError):
_ = 3 in d
d = deque([A(), A()])
with self.assertRaises(RuntimeError):
_ = d.count(3)
def test_extend(self):
d = deque('a')
self.assertRaises(TypeError, d.extend, 1)
@@ -534,25 +527,11 @@ class TestBasic(unittest.TestCase):
e = eval(repr(d))
self.assertEqual(list(d), list(e))
d.append(d)
self.assertIn('...', repr(d))
def test_print(self):
d = deque(range(200))
d.append(d)
try:
os_helper.unlink(os_helper.TESTFN)
fo = open(os_helper.TESTFN, "w")
print(d, file=fo, end='')
fo.close()
fo = open(os_helper.TESTFN, "r")
self.assertEqual(fo.read(), repr(d))
finally:
fo.close()
os_helper.unlink(os_helper.TESTFN)
self.assertEqual(repr(d)[-20:], '7, 198, 199, [...]])')
def test_init(self):
self.assertRaises(TypeError, deque, 'abc', 2, 3);
self.assertRaises(TypeError, deque, 1);
self.assertRaises(TypeError, deque, 'abc', 2, 3)
self.assertRaises(TypeError, deque, 1)
def test_hash(self):
self.assertRaises(TypeError, hash, deque('abc'))
@@ -894,6 +873,7 @@ class TestSubclass(unittest.TestCase):
p = weakref.proxy(d)
self.assertEqual(str(p), str(d))
d = None
support.gc_collect() # For PyPy or other GCs.
self.assertRaises(ReferenceError, str, p)
def test_strange_subclass(self):