diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2017-01-11 18:13:03 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2017-01-11 18:13:03 (GMT) |
commit | d9c956fb23f1c38c8050e9531ff5a77559f7f7af (patch) | |
tree | 0de788eda9cbce49e3549e0c4374e0fb8add1ef4 /Lib/unittest/test/testmock | |
parent | d4f5001bac6a5d5fafb723a17cf792758fca6ea2 (diff) | |
download | cpython-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.py | 13 |
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() |