| 
									
										
										
										
											2012-03-14 12:24:34 -07:00
										 |  |  | import unittest | 
					
						
							| 
									
										
										
										
											2017-01-11 20:13:03 +02:00
										 |  |  | import copy | 
					
						
							|  |  |  | import pickle | 
					
						
							| 
									
										
										
										
											2012-03-14 12:24:34 -07:00
										 |  |  | 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): | 
					
						
							| 
									
										
										
										
											2013-11-17 00:12:21 +02:00
										 |  |  |         self.assertIs(DEFAULT, sentinel.DEFAULT) | 
					
						
							| 
									
										
										
										
											2012-03-14 12:24:34 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def testBases(self): | 
					
						
							|  |  |  |         # If this doesn't raise an AttributeError then help(mock) is broken | 
					
						
							|  |  |  |         self.assertRaises(AttributeError, lambda: sentinel.__bases__) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-11 20:13:03 +02:00
										 |  |  |     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) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-03-14 12:24:34 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							|  |  |  |     unittest.main() |