async def locking_task() -> None: async with lock_store.lock( conversation_id, wait_time_in_seconds=wait_time_in_seconds ): # Do a very short sleep so that the other tasks can try to acquire the lock # in the meantime await asyncio.sleep(0.0)
async def test_redis_lock_store_timeout(monkeypatch: MonkeyPatch): import redis.exceptions lock_store = FakeRedisLockStore() monkeypatch.setattr( lock_store, lock_store.get_or_create_lock.__name__, Mock(side_effect=redis.exceptions.TimeoutError), ) with pytest.raises(LockError): async with lock_store.lock("some sender"): pass
async def test_redis_lock_store_with_invalid_prefix(monkeypatch: MonkeyPatch): import redis.exceptions lock_store = FakeRedisLockStore() prefix = "!asdf234 34#" lock_store._set_key_prefix(prefix) assert lock_store._get_key_prefix() == DEFAULT_REDIS_LOCK_STORE_KEY_PREFIX monkeypatch.setattr( lock_store, lock_store.get_or_create_lock.__name__, Mock(side_effect=redis.exceptions.TimeoutError), ) with pytest.raises(LockError): async with lock_store.lock("some sender"): pass