| 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() |