17db96d56Sopenharmony_ciimport unittest 27db96d56Sopenharmony_ciimport copy 37db96d56Sopenharmony_ciimport pickle 47db96d56Sopenharmony_cifrom unittest.mock import sentinel, DEFAULT 57db96d56Sopenharmony_ci 67db96d56Sopenharmony_ci 77db96d56Sopenharmony_ciclass SentinelTest(unittest.TestCase): 87db96d56Sopenharmony_ci 97db96d56Sopenharmony_ci def testSentinels(self): 107db96d56Sopenharmony_ci self.assertEqual(sentinel.whatever, sentinel.whatever, 117db96d56Sopenharmony_ci 'sentinel not stored') 127db96d56Sopenharmony_ci self.assertNotEqual(sentinel.whatever, sentinel.whateverelse, 137db96d56Sopenharmony_ci 'sentinel should be unique') 147db96d56Sopenharmony_ci 157db96d56Sopenharmony_ci 167db96d56Sopenharmony_ci def testSentinelName(self): 177db96d56Sopenharmony_ci self.assertEqual(str(sentinel.whatever), 'sentinel.whatever', 187db96d56Sopenharmony_ci 'sentinel name incorrect') 197db96d56Sopenharmony_ci 207db96d56Sopenharmony_ci 217db96d56Sopenharmony_ci def testDEFAULT(self): 227db96d56Sopenharmony_ci self.assertIs(DEFAULT, sentinel.DEFAULT) 237db96d56Sopenharmony_ci 247db96d56Sopenharmony_ci def testBases(self): 257db96d56Sopenharmony_ci # If this doesn't raise an AttributeError then help(mock) is broken 267db96d56Sopenharmony_ci self.assertRaises(AttributeError, lambda: sentinel.__bases__) 277db96d56Sopenharmony_ci 287db96d56Sopenharmony_ci def testPickle(self): 297db96d56Sopenharmony_ci for proto in range(pickle.HIGHEST_PROTOCOL+1): 307db96d56Sopenharmony_ci with self.subTest(protocol=proto): 317db96d56Sopenharmony_ci pickled = pickle.dumps(sentinel.whatever, proto) 327db96d56Sopenharmony_ci unpickled = pickle.loads(pickled) 337db96d56Sopenharmony_ci self.assertIs(unpickled, sentinel.whatever) 347db96d56Sopenharmony_ci 357db96d56Sopenharmony_ci def testCopy(self): 367db96d56Sopenharmony_ci self.assertIs(copy.copy(sentinel.whatever), sentinel.whatever) 377db96d56Sopenharmony_ci self.assertIs(copy.deepcopy(sentinel.whatever), sentinel.whatever) 387db96d56Sopenharmony_ci 397db96d56Sopenharmony_ci 407db96d56Sopenharmony_ciif __name__ == '__main__': 417db96d56Sopenharmony_ci unittest.main() 42