]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-141510: Fix test_xpickle for Python 3.14 and older (#145069)
authorVictor Stinner <vstinner@python.org>
Sat, 21 Feb 2026 12:05:35 +0000 (13:05 +0100)
committerGitHub <noreply@github.com>
Sat, 21 Feb 2026 12:05:35 +0000 (13:05 +0100)
Skip tests on frozendict on Python 3.14 and older.

Lib/test/pickletester.py

index 0624b6a025782944eeca040e755573d0e2dcc48d..6ac4b19da3ea9c98abfbdd969764c32dafff294e 100644 (file)
@@ -2925,9 +2925,13 @@ class AbstractPickleTests:
                 self.assertIs(keys[0].attr, x)
 
     def test_recursive_frozendict_in_key(self):
+        if self.py_version < (3, 15):
+            self.skipTest('need frozendict')
         self._test_recursive_collection_in_key(frozendict, minprotocol=2)
 
     def test_recursive_frozendict_subclass_in_key(self):
+        if self.py_version < (3, 15):
+            self.skipTest('need frozendict')
         self._test_recursive_collection_in_key(MyFrozenDict)
 
     def _test_recursive_collection_in_value(self, factory, minprotocol=0):
@@ -2942,9 +2946,13 @@ class AbstractPickleTests:
                 self.assertIs(x['key'][0], x)
 
     def test_recursive_frozendict_in_value(self):
+        if self.py_version < (3, 15):
+            self.skipTest('need frozendict')
         self._test_recursive_collection_in_value(frozendict, minprotocol=2)
 
     def test_recursive_frozendict_subclass_in_value(self):
+        if self.py_version < (3, 15):
+            self.skipTest('need frozendict')
         self._test_recursive_collection_in_value(MyFrozenDict)
 
     def test_recursive_inst_state(self):
@@ -3437,6 +3445,8 @@ class AbstractPickleTests:
                         self.skipTest('int and str subclasses are not interoperable with Python 2')
                     if (3, 0) <= self.py_version < (3, 4) and proto < 2 and C in (MyStr, MyUnicode):
                         self.skipTest('str subclasses are not interoperable with Python < 3.4')
+                    if self.py_version < (3, 15) and C == MyFrozenDict:
+                        self.skipTest('frozendict is not available on Python < 3.15')
                     B = C.__base__
                     x = C(C.sample)
                     x.foo = 42
@@ -3458,6 +3468,8 @@ class AbstractPickleTests:
                 with self.subTest(proto=proto, C=C):
                     if self.py_version < (3, 4) and proto < 3 and C in (MyStr, MyUnicode):
                         self.skipTest('str subclasses are not interoperable with Python < 3.4')
+                    if self.py_version < (3, 15) and C == MyFrozenDict:
+                        self.skipTest('frozendict is not available on Python < 3.15')
                     B = C.__base__
                     x = C(C.sample)
                     x.foo = 42