Skip to content

Commit ed36fff

Browse files
committed
Add more locking unit tests
Took a few tests from #216.
1 parent 84a397c commit ed36fff

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

test_fakeredis.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3987,6 +3987,26 @@ def test_lock_nonblocking(self):
39873987
lock2 = self.redis.lock('foo')
39883988
self.assertFalse(lock2.acquire(blocking=False))
39893989

3990+
def test_lock_twice(self):
3991+
lock = self.redis.lock('foo')
3992+
self.assertTrue(lock.acquire(blocking=False))
3993+
self.assertFalse(lock.acquire(blocking=False))
3994+
3995+
def test_acquiring_lock_different_lock_release(self):
3996+
lock1 = self.redis.lock('foo')
3997+
lock2 = self.redis.lock('foo')
3998+
self.assertTrue(lock1.acquire(blocking=False))
3999+
self.assertFalse(lock2.acquire(blocking=False))
4000+
4001+
# Test only releasing lock1 actually releases the lock
4002+
with self.assertRaises(redis.exceptions.LockError):
4003+
lock2.release()
4004+
self.assertFalse(lock2.acquire(blocking=False))
4005+
lock1.release()
4006+
# Locking with lock2 now has the lock
4007+
self.assertTrue(lock2.acquire(blocking=False))
4008+
self.assertFalse(lock1.acquire(blocking=False))
4009+
39904010
def test_lock_extend(self):
39914011
lock = self.redis.lock('foo', timeout=2)
39924012
lock.acquire()

0 commit comments

Comments
 (0)