diff options
Diffstat (limited to 'Lib/test/test_unittest/testmock/testsentinel.py')
-rw-r--r-- | Lib/test/test_unittest/testmock/testsentinel.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Lib/test/test_unittest/testmock/testsentinel.py b/Lib/test/test_unittest/testmock/testsentinel.py new file mode 100644 index 0000000..de53509 --- /dev/null +++ b/Lib/test/test_unittest/testmock/testsentinel.py @@ -0,0 +1,41 @@ +import unittest +import copy +import pickle +from unittest.mock import sentinel, DEFAULT + + +class SentinelTest(unittest.TestCase): + + def testSentinels(self): + self.assertEqual(sentinel.whatever, sentinel.whatever, + 'sentinel not stored') + self.assertNotEqual(sentinel.whatever, sentinel.whateverelse, + 'sentinel should be unique') + + + def testSentinelName(self): + self.assertEqual(str(sentinel.whatever), 'sentinel.whatever', + 'sentinel name incorrect') + + + def testDEFAULT(self): + self.assertIs(DEFAULT, sentinel.DEFAULT) + + def testBases(self): + # 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() |