From 7b6486cd301709896019f0d5c14cfae0da9d744e Mon Sep 17 00:00:00 2001 From: CPython Developers <> Date: Tue, 7 Mar 2023 23:47:16 +0900 Subject: [PATCH 1/2] Update test/test_weakset.py from CPython 3.11.2 --- Lib/test/test_weakset.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/Lib/test/test_weakset.py b/Lib/test/test_weakset.py index 566d742a0a..10b44c35db 100644 --- a/Lib/test/test_weakset.py +++ b/Lib/test/test_weakset.py @@ -1,5 +1,6 @@ import unittest from weakref import WeakSet +import copy import string from collections import UserString as ustr from collections.abc import Set, MutableSet @@ -15,6 +16,12 @@ class RefCycle: def __init__(self): self.cycle = self +class WeakSetSubclass(WeakSet): + pass + +class WeakSetWithSlots(WeakSet): + __slots__ = ('x', 'y') + class TestWeakSet(unittest.TestCase): @@ -455,6 +462,30 @@ def test_abc(self): self.assertIsInstance(self.s, Set) self.assertIsInstance(self.s, MutableSet) + def test_copying(self): + for cls in WeakSet, WeakSetWithSlots: + s = cls(self.items) + s.x = ['x'] + s.z = ['z'] + + dup = copy.copy(s) + self.assertIsInstance(dup, cls) + self.assertEqual(dup, s) + self.assertIsNot(dup, s) + self.assertIs(dup.x, s.x) + self.assertIs(dup.z, s.z) + self.assertFalse(hasattr(dup, 'y')) + + dup = copy.deepcopy(s) + self.assertIsInstance(dup, cls) + self.assertEqual(dup, s) + self.assertIsNot(dup, s) + self.assertEqual(dup.x, s.x) + self.assertIsNot(dup.x, s.x) + self.assertEqual(dup.z, s.z) + self.assertIsNot(dup.z, s.z) + self.assertFalse(hasattr(dup, 'y')) + if __name__ == "__main__": unittest.main() From 1812bd17a560dbd0b87f63653c56e04784f410a4 Mon Sep 17 00:00:00 2001 From: LYK Date: Tue, 7 Mar 2023 23:49:18 +0900 Subject: [PATCH 2/2] Mark a failing test of test/test_weakset.py --- Lib/test/test_weakset.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Lib/test/test_weakset.py b/Lib/test/test_weakset.py index 10b44c35db..b93ecfdb79 100644 --- a/Lib/test/test_weakset.py +++ b/Lib/test/test_weakset.py @@ -462,6 +462,8 @@ def test_abc(self): self.assertIsInstance(self.s, Set) self.assertIsInstance(self.s, MutableSet) + # TODO: RUSTPYTHON + @unittest.expectedFailure def test_copying(self): for cls in WeakSet, WeakSetWithSlots: s = cls(self.items)