Skip to content

Commit 8162f6b

Browse files
committed
Add more tests to test_dict
1 parent 2939cba commit 8162f6b

1 file changed

Lines changed: 16 additions & 3 deletions

File tree

Lib/test/test_dict.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1732,9 +1732,7 @@ class FrozenDict(frozendict):
17321732

17331733

17341734
class FrozenDictSlots(frozendict):
1735-
__slots__ = ('attr',)
1736-
def __init__(self, *args, **kwargs):
1737-
self.attr = 123
1735+
__slots__ = ('slot_attr',)
17381736

17391737

17401738
class FrozenDictTests(unittest.TestCase):
@@ -1837,17 +1835,32 @@ def test_pickle(self):
18371835
FrozenDict(x=1, y=2),
18381836
FrozenDictSlots(x=1, y=2),
18391837
):
1838+
if type(fd) == FrozenDict:
1839+
fd.attr = 123
1840+
if type(fd) == FrozenDictSlots:
1841+
fd.slot_attr = 456
18401842
with self.subTest(fd=fd, proto=proto):
18411843
if proto >= 2:
18421844
p = pickle.dumps(fd, proto)
18431845
fd2 = pickle.loads(p)
18441846
self.assertEqual(fd2, fd)
18451847
self.assertEqual(type(fd2), type(fd))
1848+
if type(fd) == FrozenDict:
1849+
self.assertEqual(fd2.attr, 123)
1850+
if type(fd) == FrozenDictSlots:
1851+
self.assertEqual(fd2.slot_attr, 456)
18461852
else:
18471853
# protocol 0 and 1 don't support frozendict
18481854
with self.assertRaises(TypeError):
18491855
pickle.dumps(fd, proto)
18501856

1857+
def test_pickle_iter(self):
1858+
it = iter(frozendict(x=1, y=2))
1859+
for proto in range(pickle.HIGHEST_PROTOCOL + 1):
1860+
p = pickle.dumps(it, proto)
1861+
it2 = pickle.loads(p)
1862+
self.assertEqual(list(it2), ['x', 'y'])
1863+
18511864

18521865
if __name__ == "__main__":
18531866
unittest.main()

0 commit comments

Comments
 (0)