# HG changeset patch # User Gregory Szorc # Date 2019-01-31 00:53:12 # Node ID 5880b4e762cde19b30209268b491f43300b7df72 # Parent eb6700e6c5ea8b999724b565e02a8ecaa707504e tests: perform a shallow copy instead of a deep copy Python 3 can't perform a deep copy because it looks like symbols in the locals() namespace are not deep-copyable. For the curious, somehow the deepcopy() is attempting to copy objects attached to the unittest.* functions for the running test! We don't use deepcopy() anywhere in the code base and a shallow object copy should be sufficient to test lock copying. Actually, I'm not sure why we even test this, as I couldn't find copy.copy() being used for lock copying either. Who knows. Differential Revision: https://phab.mercurial-scm.org/D5770 diff --git a/tests/test-lock.py b/tests/test-lock.py --- a/tests/test-lock.py +++ b/tests/test-lock.py @@ -141,7 +141,7 @@ class testlock(unittest.TestCase): state.assertacquirecalled(True) # fake a fork - forklock = copy.deepcopy(lock) + forklock = copy.copy(lock) forklock._pidoffset = 1 forklock.release() state.assertreleasecalled(False) @@ -238,7 +238,7 @@ class testlock(unittest.TestCase): childstate.assertacquirecalled(True) # fork the child lock - forkchildlock = copy.deepcopy(childlock) + forkchildlock = copy.copy(childlock) forkchildlock._pidoffset += 1 forkchildlock.release() childstate.assertreleasecalled(False)