mirror of
https://github.com/RustPython/RustPython.git
synced 2026-10-29 03:04:38 +08:00
Update test_deque from CPython 3.10.5
This commit is contained in:
1 parent
7580e11320
commit
c8ae1806a4
1 file changed
+19
-39
Vendored
+19
-39
@@ -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):
|
||||
|
||||
Reference in new issue
Block a user