# HG changeset patch # User Gregory Szorc # Date 2019-01-31 00:53:12 # Node ID 9701bac56c46b3c0c7bcf749fb5041e22866440f # Parent 41bd254b6de42c69a59d67c0ec90c9555f0a8fb0 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)