mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
Issue #20804: The unittest.mock.sentinel attributes now preserve their
identity when they are copied or pickled.
This commit is contained in:
parent
d4f5001bac
commit
d9c956fb23
5 changed files with 33 additions and 0 deletions
|
@ -1,4 +1,6 @@
|
|||
import unittest
|
||||
import copy
|
||||
import pickle
|
||||
from unittest.mock import sentinel, DEFAULT
|
||||
|
||||
|
||||
|
@ -23,6 +25,17 @@ class SentinelTest(unittest.TestCase):
|
|||
# If this doesn't raise an AttributeError then help(mock) is broken
|
||||
self.assertRaises(AttributeError, lambda: sentinel.__bases__)
|
||||
|
||||
def testPickle(self):
|
||||
for proto in range(pickle.HIGHEST_PROTOCOL+1):
|
||||
with self.subTest(protocol=proto):
|
||||
pickled = pickle.dumps(sentinel.whatever, proto)
|
||||
unpickled = pickle.loads(pickled)
|
||||
self.assertIs(unpickled, sentinel.whatever)
|
||||
|
||||
def testCopy(self):
|
||||
self.assertIs(copy.copy(sentinel.whatever), sentinel.whatever)
|
||||
self.assertIs(copy.deepcopy(sentinel.whatever), sentinel.whatever)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue