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