import unittest import test.test_support mutex = test.test_support.import_module("mutex", deprecated=True) class MutexTest(unittest.TestCase): def test_lock_and_unlock(self): def called_by_mutex(some_data): self.assertEqual(some_data, "spam") self.assertTrue(m.test(), "mutex not held") # Nested locking m.lock(called_by_mutex2, "eggs") def called_by_mutex2(some_data): self.assertEquals(some_data, "eggs") self.assertTrue(m.test(), "mutex not held") self.assertTrue(ready_for_2, "called_by_mutex2 called too soon") m = mutex.mutex() read_for_2 = False m.lock(called_by_mutex, "spam") ready_for_2 = True # unlock both locks m.unlock() m.unlock() self.assertFalse(m.test(), "mutex still held") def test_main(): test.test_support.run_unittest(MutexTest) if __name__ == "__main__": test_main()