github.com/grumpyhome/grumpy@v0.3.1-0.20201208125205-7b775405bdf1/grumpy-runtime-src/third_party/stdlib/test/test_mutex.py (about) 1 import unittest 2 import test.test_support 3 4 # mutex = test.test_support.import_module("mutex", deprecated=True) 5 import mutex 6 7 class MutexTest(unittest.TestCase): 8 9 def test_lock_and_unlock(self): 10 11 def called_by_mutex(some_data): 12 self.assertEqual(some_data, "spam") 13 self.assertTrue(m.test(), "mutex not held") 14 # Nested locking 15 m.lock(called_by_mutex2, "eggs") 16 17 def called_by_mutex2(some_data): 18 self.assertEqual(some_data, "eggs") 19 self.assertTrue(m.test(), "mutex not held") 20 self.assertTrue(ready_for_2, 21 "called_by_mutex2 called too soon") 22 23 m = mutex.mutex() 24 read_for_2 = False 25 m.lock(called_by_mutex, "spam") 26 ready_for_2 = True 27 # unlock both locks 28 m.unlock() 29 m.unlock() 30 self.assertFalse(m.test(), "mutex still held") 31 32 def test_main(): 33 test.test_support.run_unittest(MutexTest) 34 35 if __name__ == "__main__": 36 test_main()