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