Example #1
0
 def _testNow(self, la):
     l = locks.BaseLock("name")
     self.failUnless(l.isAvailable(la))
     l.claim("owner1", la)
     self.failIf(l.isAvailable(la))
     l.release("owner1", la)
     self.failUnless(l.isAvailable(la))
Example #2
0
 def testLater(self):
     lock = locks.BaseLock("name", 2)
     lock.claim("owner1")
     lock.claim("owner2")
     d = claimHarder(lock, "owner3")
     d.addCallback(lambda lock: lock.release("owner3"))
     lock.release("owner2")
     lock.release("owner1")
     return d
Example #3
0
 def testNowMixed2(self):
     """ Test counting is not possible when an exclsuive has the lock """
     lid = locks.MasterLock('dummy')
     lac = locks.LockAccess(lid, 'counting')
     lae = locks.LockAccess(lid, 'exclusive')
     l = locks.BaseLock("name", maxCount=2)
     self.failUnless(l.isAvailable(lae))
     l.claim("count-owner", lae)
     self.failIf(l.isAvailable(lac))
     l.release("count-owner", lae)
     self.failUnless(l.isAvailable(lae))
Example #4
0
 def testLaterCounting(self):
     lid = locks.MasterLock('dummy')
     la = locks.LockAccess(lid, 'counting')
     lock = locks.BaseLock("name", 2)
     lock.claim("owner1", la)
     lock.claim("owner2", la)
     d = claimHarder(lock, "owner3", la)
     d.addCallback(lambda lock: lock.release("owner3", la))
     lock.release("owner2", la)
     lock.release("owner1", la)
     return d
Example #5
0
 def testNow(self):
     lock = locks.BaseLock("name", 2)
     self.failUnless(lock.isAvailable())
     lock.claim("owner1")
     self.failUnless(lock.isAvailable())
     lock.claim("owner2")
     self.failIf(lock.isAvailable())
     lock.release("owner1")
     self.failUnless(lock.isAvailable())
     lock.release("owner2")
     self.failUnless(lock.isAvailable())
Example #6
0
 def _testRandom(self, la):
     lock = locks.BaseLock("name")
     dl = []
     for i in range(100):
         owner = "owner%d" % i
         mode = random.choice(["now", "very soon", "soon"])
         d = claimHarder(lock, owner, la)
         d.addCallback(hold, owner, la, mode)
         dl.append(d)
     d = defer.DeferredList(dl)
     d.addCallback(self._cleanup, lock, la)
     return d
Example #7
0
 def testNowCounting(self):
     lid = locks.MasterLock('dummy')
     la = locks.LockAccess(lid, 'counting')
     lock = locks.BaseLock("name", 2)
     self.failUnless(lock.isAvailable(la))
     lock.claim("owner1", la)
     self.failUnless(lock.isAvailable(la))
     lock.claim("owner2", la)
     self.failIf(lock.isAvailable(la))
     lock.release("owner1", la)
     self.failUnless(lock.isAvailable(la))
     lock.release("owner2", la)
     self.failUnless(lock.isAvailable(la))
Example #8
0
 def testRandomCounting(self):
     lid = locks.MasterLock('dummy')
     la = locks.LockAccess(lid, 'counting')
     COUNT = 5
     lock = locks.BaseLock("name", COUNT)
     dl = []
     for i in range(100):
         owner = "owner%d" % i
         mode = random.choice(["now", "very soon", "soon"])
         d = claimHarder(lock, owner, la)
         def _check(lock):
             self.failIf(len(lock.owners) > COUNT)
             return lock
         d.addCallback(_check)
         d.addCallback(hold, owner, la, mode)
         dl.append(d)
     d = defer.DeferredList(dl)
     d.addCallback(self._cleanup, lock, COUNT, la)
     return d
Example #9
0
    def testRandom(self):
        COUNT = 5
        lock = locks.BaseLock("name", COUNT)
        dl = []
        for i in range(100):
            owner = "owner%d" % i
            mode = random.choice(["now", "very soon", "soon"])
            d = claimHarder(lock, owner)

            def _check(lock):
                self.failIf(len(lock.owners) > COUNT)
                return lock

            d.addCallback(_check)
            d.addCallback(hold, owner, mode)
            dl.append(d)
        d = defer.DeferredList(dl)
        d.addCallback(self._cleanup, lock, COUNT)
        return d
Example #10
0
 def _testLater(self, la):
     lock = locks.BaseLock("name")
     d = claimHarder(lock, "owner1", la)
     d.addCallback(lambda lock: lock.release("owner1", la))
     return d
Example #11
0
 def _testCompetition(self, la):
     lock = locks.BaseLock("name")
     d = claimHarder(lock, "owner1", la)
     d.addCallback(self._claim1, la)
     return d