import unittest import _thread class TestLockAfterTimeout(unittest.TestCase): def create_dodgy_lock(self): l = _thread.allocate_lock() self.assertTrue(l.acquire()) self.assertFalse(l.acquire(timeout=0.01)) # times out l.release() return l # should be unlocked def test_locked(self): l = self.create_dodgy_lock() self.assertFalse(l.locked()) # fails on Py3.2 win32 def test_nonblocking_acquire(self): l = self.create_dodgy_lock() self.assertTrue(l.acquire(blocking=False)) # fails on Py3.2 win32 def test_releasing_unowned_lock(self): l = self.create_dodgy_lock() self.assertRaises(_thread.error, l.release) # fails on Py3.2 win32 if __name__ == '__main__': unittest.main()