improve test_copy_reduce and test_deepcopy_reduce coverage (#154182)

tomasr8 <[email protected]>
Newsgroups gmane.comp.python.cvs
Message-ID <[email protected]>
https://github.com/python/cpython/commit/4af81d9215a8f267c5caeecf98c789999c108f80
commit: 4af81d9215a8f267c5caeecf98c789999c108f80
branch: main
author: David <[email protected]>
committer: tomasr8 <[email protected]>
date: 2026-08-14T14:41:31+02:00
summary:

improve test_copy_reduce and test_deepcopy_reduce coverage (#154182)

* improve test_copy_reduce and test_deepcopy_reduce coverage

* add assert __reduce_ex__ not called

* change reduce params in test copy and deepcopy reduce_ex

* change reduce_ex params in test copy and deepcopy reduce

---------

Co-authored-by: Tomas R. <[email protected]>

files:
M Lib/test/test_copy.py

diff --git a/Lib/test/test_copy.py b/Lib/test/test_copy.py
index 9455c9e00514ca..13b7ce29565dee 100644
--- a/Lib/test/test_copy.py
+++ b/Lib/test/test_copy.py
@@ -60,7 +60,7 @@ class C(object):
             def __reduce_ex__(self, proto):
                 c.append(1)
                 return ""
-            def __reduce__(self):
+            def __reduce__(*args):
                 self.fail("shouldn't call this")
         c = []
         x = C()
@@ -70,9 +70,15 @@ def __reduce__(self):
 
     def test_copy_reduce(self):
         class C(object):
+            def __reduce_ex__(*args):
+                self.fail("shouldn't call this")
             def __reduce__(self):
                 c.append(1)
                 return ""
+            def __getattribute__(self, name):
+                if name == "__reduce_ex__":
+                    raise AttributeError(name)
+                return object.__getattribute__(self, name)
         c = []
         x = C()
         y = copy.copy(x)
@@ -329,7 +335,7 @@ class C(object):
             def __reduce_ex__(self, proto):
                 c.append(1)
                 return ""
-            def __reduce__(self):
+            def __reduce__(*args):
                 self.fail("shouldn't call this")
         c = []
         x = C()
@@ -339,9 +345,15 @@ def __reduce__(self):
 
     def test_deepcopy_reduce(self):
         class C(object):
+            def __reduce_ex__(*args):
+                self.fail("shouldn't call this")
             def __reduce__(self):
                 c.append(1)
                 return ""
+            def __getattribute__(self, name):
+                if name == "__reduce_ex__":
+                    raise AttributeError(name)
+                return object.__getattribute__(self, name)
         c = []
         x = C()
         y = copy.deepcopy(x)

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.