コード例 #1
0
 def second_lock(self):
     lock = FileLock(self.testfile, timeout=0)
     try:
         lock.acquire()
     except FileLockException:
         sys.exit(1)
     lock.release()
コード例 #2
0
 def test_stale(self):
     """Handling of stale lock files."""
     lock = FileLock(self.testfile)
     lockfile = open(lock.lockfile, 'w')
     lock.acquire()
     lockfile.close()
     lock.release()
コード例 #3
0
 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()
コード例 #4
0
 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())
コード例 #5
0
 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)