Пример #1
0
 def test_acquireReadLock_before_acquireWriteLock(self):
     lock = ReadWriteLock('foo', self.context)
     index = lock.currentIndex()
     self.assertEqual(None, memcache.get(lock.lockKey(index)))
     lock.acquireReadLock(index)
     self.assertEqual(None, memcache.get(lock.lockKey(index)))
     self.assertEqual([], self.loggingDouble.messages['debug'])
     self.assertEqual([], self.loggingDouble.messages['critical'])
Пример #2
0
 def test_acquireReadLock_before_acquireWriteLock(self):
     lock = ReadWriteLock('foo', self.context)
     index = lock.currentIndex()
     self.assertEqual(None, memcache.get(lock.lockKey(index)))
     lock.acquireReadLock(index)
     self.assertEqual(None, memcache.get(lock.lockKey(index)))
     self.assertEqual([], self.loggingDouble.messages['debug'])
     self.assertEqual([], self.loggingDouble.messages['critical'])
Пример #3
0
 def test_releaseWriteLock(self):
     lock = ReadWriteLock('foo', self.context)
     index = lock.currentIndex()
     self.assertEqual(None, memcache.get(lock.lockKey(index)))
     lock.acquireWriteLock(index)
     self.assertEqual('65537', memcache.get(lock.lockKey(index)))
     lock.releaseWriteLock(index)
     self.assertEqual('65536', memcache.get(lock.lockKey(index)))
Пример #4
0
 def test_releaseWriteLock(self):
     lock = ReadWriteLock('foo', self.context)
     index = lock.currentIndex()
     self.assertEqual(None, memcache.get(lock.lockKey(index)))
     lock.acquireWriteLock(index)
     self.assertEqual(65537, memcache.get(lock.lockKey(index)))
     lock.releaseWriteLock(index)
     self.assertEqual(65536, memcache.get(lock.lockKey(index)))
Пример #5
0
 def test_acquireWriteLock_failure(self):
     lock = ReadWriteLock('foo', self.context)
     index = lock.currentIndex()
     self.assertEqual(None, memcache.get(lock.lockKey(index)))
     lock.acquireWriteLock(index) # need to call before acquireReadLock
     self.assertEqual(65537, memcache.get(lock.lockKey(index)))
     lock.acquireReadLock(index)
     self.assertEqual(32769, memcache.get(lock.lockKey(index)))
     self.assertRaises(FanInWriteLockFailureRuntimeError, lock.acquireWriteLock, index)
Пример #6
0
 def test_acquireWriteLock_failure(self):
     lock = ReadWriteLock('foo', self.context)
     index = lock.currentIndex()
     self.assertEqual(None, memcache.get(lock.lockKey(index)))
     lock.acquireWriteLock(index)  # need to call before acquireReadLock
     self.assertEqual('65537', memcache.get(lock.lockKey(index)))
     lock.acquireReadLock(index)
     self.assertEqual('32769', memcache.get(lock.lockKey(index)))
     self.assertRaises(FanInWriteLockFailureRuntimeError,
                       lock.acquireWriteLock, index)
Пример #7
0
 def test_acquireReadLock_gave_up(self):
     lock = ReadWriteLock('foo', self.context)
     index = lock.currentIndex()
     self.assertEqual(None, memcache.get(lock.lockKey(index)))
     lock.acquireWriteLock(index)
     self.assertEqual(65537, memcache.get(lock.lockKey(index)))
     lock.acquireReadLock(index)
     self.assertEqual(32769, memcache.get(lock.lockKey(index)))
     self.assertEqual(["Tried to acquire read lock 'foo-lock-3626764237' 1 times...",
                       "Tried to acquire read lock 'foo-lock-3626764237' 2 times..."],
                       self.loggingDouble.messages['debug'])
     self.assertEqual(["Gave up waiting for all fan-in work items with read lock 'foo-lock-3626764237'."],
                      self.loggingDouble.messages['critical'])
Пример #8
0
 def test_acquireReadLock_gave_up(self):
     lock = ReadWriteLock('foo', self.context)
     index = lock.currentIndex()
     self.assertEqual(None, memcache.get(lock.lockKey(index)))
     lock.acquireWriteLock(index)
     self.assertEqual('65537', memcache.get(lock.lockKey(index)))
     lock.acquireReadLock(index)
     self.assertEqual('32769', memcache.get(lock.lockKey(index)))
     self.assertEqual([
         "Tried to acquire read lock 'foo-lock-3626764237' 1 times...",
         "Tried to acquire read lock 'foo-lock-3626764237' 2 times..."
     ], self.loggingDouble.messages['debug'])
     self.assertEqual([
         "Gave up waiting for all fan-in work items with read lock 'foo-lock-3626764237'."
     ], self.loggingDouble.messages['critical'])
Пример #9
0
 def test_acquireReadLock_one_wait_iter(self):
     lock = ReadWriteLock('foo', self.context)
     index = lock.currentIndex()
     self.assertEqual(None, memcache.get(lock.lockKey(index)))
     lock.acquireWriteLock(index)
     self.assertEqual(65537, memcache.get(lock.lockKey(index)))
     def sleepAndRelease(seconds): # pylint: disable=W0613
         lock.releaseWriteLock(index)
     mock('time.sleep', returns_func=sleepAndRelease, tracker=None)
     lock.acquireReadLock(index)
     self.assertEqual(32768, memcache.get(lock.lockKey(index)))
     self.assertEqual(["Tried to acquire read lock 'foo-lock-3626764237' 1 times..."],
                      self.loggingDouble.messages['debug'])
     self.assertEqual(["Gave up waiting for all fan-in work items with read lock 'foo-lock-3626764237'."],
                      self.loggingDouble.messages['critical'])
Пример #10
0
    def test_acquireReadLock_one_wait_iter(self):
        lock = ReadWriteLock('foo', self.context)
        index = lock.currentIndex()
        self.assertEqual(None, memcache.get(lock.lockKey(index)))
        lock.acquireWriteLock(index)
        self.assertEqual('65537', memcache.get(lock.lockKey(index)))

        def sleepAndRelease(seconds):  # pylint: disable-msg=W0613
            lock.releaseWriteLock(index)

        mock('time.sleep', returns_func=sleepAndRelease, tracker=None)
        lock.acquireReadLock(index)
        self.assertEqual('32768', memcache.get(lock.lockKey(index)))
        self.assertEqual(
            ["Tried to acquire read lock 'foo-lock-3626764237' 1 times..."],
            self.loggingDouble.messages['debug'])
        self.assertEqual([
            "Gave up waiting for all fan-in work items with read lock 'foo-lock-3626764237'."
        ], self.loggingDouble.messages['critical'])
Пример #11
0
 def test_lockKey(self):
     lock = ReadWriteLock('foo', self.context)
     self.assertEqual('foo-lock-999', lock.lockKey(999))
Пример #12
0
 def test_lockKey(self):
     lock = ReadWriteLock('foo', self.context)
     self.assertEqual('foo-lock-999', lock.lockKey(999))