Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 25ca331

Browse filesBrowse files
authored
Merge pull request #4761 from JaeyoungAhn/test_deque
updated test_deque.py from CPython v3.11.2
2 parents a209c1a + 395e7b3 commit 25ca331
Copy full SHA for 25ca331

File tree

1 file changed

+34
-60
lines changed
Filter options

1 file changed

+34
-60
lines changed

‎Lib/test/test_deque.py

Copy file name to clipboardExpand all lines: Lib/test/test_deque.py
+34-60Lines changed: 34 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from collections import deque
2+
import doctest
23
import unittest
34
from test import support, seq_tests
45
import gc
@@ -743,8 +744,9 @@ class C(object):
743744

744745
@support.cpython_only
745746
def test_sizeof(self):
747+
MAXFREEBLOCKS = 16
746748
BLOCKLEN = 64
747-
basesize = support.calcvobjsize('2P4nP')
749+
basesize = support.calcvobjsize('2P5n%dPP' % MAXFREEBLOCKS)
748750
blocksize = struct.calcsize('P%dPP' % BLOCKLEN)
749751
self.assertEqual(object.__sizeof__(deque()), basesize)
750752
check = self.check_sizeof
@@ -781,6 +783,9 @@ def test_runtime_error_on_empty_deque(self):
781783
class Deque(deque):
782784
pass
783785

786+
class DequeWithSlots(deque):
787+
__slots__ = ('x', 'y', '__dict__')
788+
784789
class DequeWithBadIter(deque):
785790
def __iter__(self):
786791
raise TypeError
@@ -809,41 +814,31 @@ def test_basics(self):
809814
d.clear()
810815
self.assertEqual(len(d), 0)
811816

817+
# TODO: RUSTPYTHON
818+
@unittest.expectedFailure
812819
def test_copy_pickle(self):
813-
814-
d = Deque('abc')
815-
816-
e = d.__copy__()
817-
self.assertEqual(type(d), type(e))
818-
self.assertEqual(list(d), list(e))
819-
820-
e = Deque(d)
821-
self.assertEqual(type(d), type(e))
822-
self.assertEqual(list(d), list(e))
823-
824-
for proto in range(pickle.HIGHEST_PROTOCOL + 1):
825-
s = pickle.dumps(d, proto)
826-
e = pickle.loads(s)
827-
self.assertNotEqual(id(d), id(e))
828-
self.assertEqual(type(d), type(e))
829-
self.assertEqual(list(d), list(e))
830-
831-
d = Deque('abcde', maxlen=4)
832-
833-
e = d.__copy__()
834-
self.assertEqual(type(d), type(e))
835-
self.assertEqual(list(d), list(e))
836-
837-
e = Deque(d)
838-
self.assertEqual(type(d), type(e))
839-
self.assertEqual(list(d), list(e))
840-
841-
for proto in range(pickle.HIGHEST_PROTOCOL + 1):
842-
s = pickle.dumps(d, proto)
843-
e = pickle.loads(s)
844-
self.assertNotEqual(id(d), id(e))
845-
self.assertEqual(type(d), type(e))
846-
self.assertEqual(list(d), list(e))
820+
for cls in Deque, DequeWithSlots:
821+
for d in cls('abc'), cls('abcde', maxlen=4):
822+
d.x = ['x']
823+
d.z = ['z']
824+
825+
e = d.__copy__()
826+
self.assertEqual(type(d), type(e))
827+
self.assertEqual(list(d), list(e))
828+
829+
e = cls(d)
830+
self.assertEqual(type(d), type(e))
831+
self.assertEqual(list(d), list(e))
832+
833+
for proto in range(pickle.HIGHEST_PROTOCOL + 1):
834+
s = pickle.dumps(d, proto)
835+
e = pickle.loads(s)
836+
self.assertNotEqual(id(d), id(e))
837+
self.assertEqual(type(d), type(e))
838+
self.assertEqual(list(d), list(e))
839+
self.assertEqual(e.x, d.x)
840+
self.assertEqual(e.z, d.z)
841+
self.assertFalse(hasattr(e, 'y'))
847842

848843
# TODO: RUSTPYTHON
849844
@unittest.expectedFailure
@@ -1036,31 +1031,10 @@ def test_free_after_iterating(self):
10361031

10371032
__test__ = {'libreftest' : libreftest}
10381033

1039-
def test_main(verbose=None):
1040-
import sys
1041-
test_classes = (
1042-
TestBasic,
1043-
TestVariousIteratorArgs,
1044-
TestSubclass,
1045-
TestSubclassWithKwargs,
1046-
TestSequence,
1047-
)
1048-
1049-
support.run_unittest(*test_classes)
1050-
1051-
# verify reference counting
1052-
if verbose and hasattr(sys, "gettotalrefcount"):
1053-
import gc
1054-
counts = [None] * 5
1055-
for i in range(len(counts)):
1056-
support.run_unittest(*test_classes)
1057-
gc.collect()
1058-
counts[i] = sys.gettotalrefcount()
1059-
print(counts)
1034+
def load_tests(loader, tests, pattern):
1035+
tests.addTest(doctest.DocTestSuite())
1036+
return tests
10601037

1061-
# doctests
1062-
from test import test_deque
1063-
support.run_doctest(test_deque, verbose)
10641038

10651039
if __name__ == "__main__":
1066-
test_main(verbose=True)
1040+
unittest.main()

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.