summaryrefslogtreecommitdiffstats
path: root/Lib/unittest/test/testmock
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2017-01-11 18:13:03 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2017-01-11 18:13:03 (GMT)
commitd9c956fb23f1c38c8050e9531ff5a77559f7f7af (patch)
tree0de788eda9cbce49e3549e0c4374e0fb8add1ef4 /Lib/unittest/test/testmock
parentd4f5001bac6a5d5fafb723a17cf792758fca6ea2 (diff)
downloadcpython-d9c956fb23f1c38c8050e9531ff5a77559f7f7af.zip
cpython-d9c956fb23f1c38c8050e9531ff5a77559f7f7af.tar.gz
cpython-d9c956fb23f1c38c8050e9531ff5a77559f7f7af.tar.bz2
Issue #20804: The unittest.mock.sentinel attributes now preserve their
identity when they are copied or pickled.
Diffstat (limited to 'Lib/unittest/test/testmock')
-rw-r--r--Lib/unittest/test/testmock/testsentinel.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/Lib/unittest/test/testmock/testsentinel.py b/Lib/unittest/test/testmock/testsentinel.py
index 3fb5acb..de53509 100644
--- a/Lib/unittest/test/testmock/testsentinel.py
+++ b/Lib/unittest/test/testmock/testsentinel.py
@@ -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()