def second_lock(self): lock = FileLock(self.testfile, timeout=0) try: lock.acquire() except FileLockException: sys.exit(1) lock.release()
def test_stale(self): """Handling of stale lock files.""" lock = FileLock(self.testfile) lockfile = open(lock.lockfile, 'w') lock.acquire() lockfile.close() lock.release()
def test_double(self): """Test of double locking.""" lock1 = FileLock(self.testfile) lock2 = FileLock(self.testfile, timeout=0) lock1.acquire() self.assertRaises(FileLockException, lock2.acquire) lock1.release() lock2.acquire() lock2.release()
def test_lock(self): """Basic locking test.""" lock = FileLock(self.testfile) lock.acquire() self.assertTrue(lock.is_locked) self.assertTrue(lock.check_lock()) lock.release() self.assertFalse(lock.is_locked) self.assertFalse(lock.check_lock())
def test_process(self): """Test of double locking.""" lock = FileLock(self.testfile) lock.acquire() try: process = Process(target=self.second_lock) process.start() process.join() self.assertEqual(process.exitcode, 1) finally: lock.release() process = Process(target=self.second_lock) process.start() process.join() self.assertEqual(process.exitcode, 0)