Ejemplo n.º 1
0
 def testExclusive(self):
     """ util.lock: ExclusiveLock: lock is exclusive """
     first = ExclusiveLock(self.lock_dir)
     second = ExclusiveLock(self.lock_dir)
     if not first.acquire(0.1):
         raise TestSkiped("can't acquire lock")
     self.failIf(second.acquire(0.1), "first lock is not exclusive")                
Ejemplo n.º 2
0
 def testExclusive(self):
     """ util.lock: ExclusiveLock: lock is exclusive """
     first = ExclusiveLock(self.lock_dir)
     second = ExclusiveLock(self.lock_dir)
     if not first.acquire(0.1):
         py.test.skip("can't acquire lock")
     assert not second.acquire(0.1)
Ejemplo n.º 3
0
 def testExpire(self):
     """ util.lock: ExclusiveLock: expire """
     timeout = 2.0
     lock = ExclusiveLock(self.lock_dir, timeout=timeout)
     if not lock.acquire(0.1):
         py.test.skip("can't acquire lock")
     assert not lock.expire()
     time.sleep(timeout)
     assert lock.expire()
Ejemplo n.º 4
0
 def testExpire(self):
     """ util.lock: ExclusiveLock: expire """
     timeout = 2.0
     lock = ExclusiveLock(self.lock_dir, timeout=timeout)
     if not lock.acquire(0.1):
         raise TestSkiped("can't acquire lock")
     self.failIf(lock.expire(), "lock should not be expired yet")
     time.sleep(timeout)
     self.failUnless(lock.expire(), "lock should be expired")
Ejemplo n.º 5
0
 def testExpire(self):
     """ util.lock: ExclusiveLock: expire """
     timeout = 2.0
     lock = ExclusiveLock(self.lock_dir, timeout=timeout)
     if not lock.acquire(0.1):
         py.test.skip("can't acquire lock")
     assert not lock.expire()
     time.sleep(timeout)
     assert lock.expire()
Ejemplo n.º 6
0
    def testRelease(self):
        """ util.lock: ExclusiveLock: release

        After releasing a lock, new one could be acquired.
        """
        lock = ExclusiveLock(self.lock_dir)
        if not lock.acquire(0.1):
            py.test.skip("can't acquire lock")
        lock.release()
        assert lock.acquire(0.1)
Ejemplo n.º 7
0
 def testRelease(self):
     """ util.lock: ExclusiveLock: release 
     
     After releasing a lock, new one could be acquired.
     """
     lock = ExclusiveLock(self.lock_dir)
     if not lock.acquire(0.1):
         raise TestSkiped("can't acquire lock")
     lock.release()
     self.failUnless(lock.acquire(0.1), 
                     "Could not acquire lock after release")
Ejemplo n.º 8
0
    def testAcquireAfterTimeout(self):
        """ util.lock: ExclusiveLock: acquire after timeout

        Lock with one lock, try to acquire another after timeout.
        """
        timeout = 2.0 # minimal timout
        first = ExclusiveLock(self.lock_dir, timeout)
        second = ExclusiveLock(self.lock_dir, timeout)
        if not first.acquire(0.1):
            py.test.skip("can't acquire lock")
        if second.acquire(0.1):
            py.test.skip("first lock is not exclusive")
        # Second lock should be acquired after timeout
        assert second.acquire(timeout + 0.2)
Ejemplo n.º 9
0
 def testIsLocked(self):
     """ util.lock: ExclusiveLock: isLocked """
     lock = ExclusiveLock(self.lock_dir)
     if not lock.acquire(0.1):
         py.test.skip("can't acquire lock")
     assert lock.isLocked()
     lock.release()
     assert not lock.isLocked()
Ejemplo n.º 10
0
 def testExclusive(self):
     """ util.lock: ExclusiveLock: lock is exclusive """
     first = ExclusiveLock(self.lock_dir)
     second = ExclusiveLock(self.lock_dir)
     if not first.acquire(0.1):
         py.test.skip("can't acquire lock")
     assert not second.acquire(0.1)
Ejemplo n.º 11
0
 def testIsLocked(self):
     """ util.lock: ExclusiveLock: isLocked """
     lock = ExclusiveLock(self.lock_dir)
     if not lock.acquire(0.1):
         raise TestSkiped("can't acquire lock")
     self.failUnless(lock.isLocked(), "lock state wrong")
     lock.release()
     self.failIf(lock.isLocked(), "lock state wrong")
Ejemplo n.º 12
0
 def testIsLocked(self):
     """ util.lock: ExclusiveLock: isLocked """
     lock = ExclusiveLock(self.lock_dir)
     if not lock.acquire(0.1):
         py.test.skip("can't acquire lock")
     assert lock.isLocked()
     lock.release()
     assert not lock.isLocked()
Ejemplo n.º 13
0
    def _do_locked(self, lockname, fn, arg):
        l = ExclusiveLock(lockname, 30)
        l.acquire(30)
        try:
            ret = fn(arg)
        finally:
            l.release()

        return ret
Ejemplo n.º 14
0
    def testRelease(self):
        """ util.lock: ExclusiveLock: release

        After releasing a lock, new one could be acquired.
        """
        lock = ExclusiveLock(self.lock_dir)
        if not lock.acquire(0.1):
            py.test.skip("can't acquire lock")
        lock.release()
        assert lock.acquire(0.1)
Ejemplo n.º 15
0
    def testAcquireAfterTimeout(self):
        """ util.lock: ExclusiveLock: acquire after timeout

        Lock with one lock, try to acquire another after timeout.
        """
        timeout = 2.0  # minimal timout
        first = ExclusiveLock(self.lock_dir, timeout)
        second = ExclusiveLock(self.lock_dir, timeout)
        if not first.acquire(0.1):
            py.test.skip("can't acquire lock")
        if second.acquire(0.1):
            py.test.skip("first lock is not exclusive")
        # Second lock should be acquired after timeout
        assert second.acquire(timeout + 0.1)
Ejemplo n.º 16
0
 def testExists(self):
     """ util.lock: ExclusiveLock: exists """
     lock = ExclusiveLock(self.lock_dir)
     if not lock.acquire(0.1):
         py.test.skip("can't acquire lock")
     assert lock.exists()
Ejemplo n.º 17
0
 def testExists(self):
     """ util.lock: ExclusiveLock: exists """
     lock = ExclusiveLock(self.lock_dir)
     if not lock.acquire(0.1):
         raise TestSkiped("can't acquire lock")
     self.failUnless(lock.exists(), "lock should exists")
Ejemplo n.º 18
0
 def testAcquire(self):
     """ util.lock: ExclusiveLock: acquire """
     lock = ExclusiveLock(self.lock_dir)
     assert lock.acquire(0.1)
Ejemplo n.º 19
0
 def _change_item_metadata(self, item):
     if not item._fs_item_id is None:
         lp = os.path.join(self._path, item._fs_item_id, 'meta.lock')
         item._fs_metadata_lock = ExclusiveLock(lp, 30)
         item._fs_metadata_lock.acquire(30)
Ejemplo n.º 20
0
 def testAcquire(self):
     """ util.lock: ExclusiveLock: acquire """
     lock = ExclusiveLock(self.lock_dir)
     assert lock.acquire(0.1)
Ejemplo n.º 21
0
 def testAcquire(self):
     """ util.lock: ExclusiveLock: acquire """
     lock = ExclusiveLock(self.lock_dir)
     self.failUnless(lock.acquire(0.1), "Could not acquire lock")
Ejemplo n.º 22
0
 def testExists(self):
     """ util.lock: ExclusiveLock: exists """
     lock = ExclusiveLock(self.lock_dir)
     if not lock.acquire(0.1):
         py.test.skip("can't acquire lock")
     assert lock.exists()
Ejemplo n.º 23
0
 def _change_item_metadata(self, item):
     if not item._fs_item_id is None:
         lp = self._make_path('meta', item._fs_item_id, 'item.lock')
         item._fs_metadata_lock = ExclusiveLock(lp, 30)
         item._fs_metadata_lock.acquire(30)