blob: 15e5449231ece109765cbc7ce0f3e07d3d62fbb5 [file] [log] [blame]
Facundo Batistac12b9882008-02-23 22:54:12 +00001import unittest
2import test.test_support
3
Brett Cannon9d441822008-05-08 19:26:08 +00004mutex = test.test_support.import_module("mutex", deprecated=True)
5
Facundo Batistac12b9882008-02-23 22:54:12 +00006class MutexTest(unittest.TestCase):
7
8 def setUp(self):
9 self.mutex = mutex.mutex()
10
11 def called_by_mutex(self, some_data):
12 self.assert_(self.mutex.test(), "mutex not held")
13 # Nested locking
14 self.mutex.lock(self.called_by_mutex2, "eggs")
15
16 def called_by_mutex2(self, some_data):
17 self.assert_(self.ready_for_2,
18 "called_by_mutex2 called too soon")
19
20 def test_lock_and_unlock(self):
21 self.read_for_2 = False
22 self.mutex.lock(self.called_by_mutex, "spam")
23 self.ready_for_2 = True
24 # unlock both locks
25 self.mutex.unlock()
26 self.mutex.unlock()
27 self.failIf(self.mutex.test(), "mutex still held")
28
29def test_main():
30 test.test_support.run_unittest(MutexTest)
31
32if __name__ == "__main__":
33 test_main()