test_mutex.py 999 B

1234567891011121314151617181920212223242526272829303132333435
  1. import unittest
  2. import test.test_support
  3. mutex = test.test_support.import_module("mutex", deprecated=True)
  4. class MutexTest(unittest.TestCase):
  5. def test_lock_and_unlock(self):
  6. def called_by_mutex(some_data):
  7. self.assertEqual(some_data, "spam")
  8. self.assertTrue(m.test(), "mutex not held")
  9. # Nested locking
  10. m.lock(called_by_mutex2, "eggs")
  11. def called_by_mutex2(some_data):
  12. self.assertEqual(some_data, "eggs")
  13. self.assertTrue(m.test(), "mutex not held")
  14. self.assertTrue(ready_for_2,
  15. "called_by_mutex2 called too soon")
  16. m = mutex.mutex()
  17. read_for_2 = False
  18. m.lock(called_by_mutex, "spam")
  19. ready_for_2 = True
  20. # unlock both locks
  21. m.unlock()
  22. m.unlock()
  23. self.assertFalse(m.test(), "mutex still held")
  24. def test_main():
  25. test.test_support.run_unittest(MutexTest)
  26. if __name__ == "__main__":
  27. test_main()