def lock_manager_redis_patched(): with patch("aioredlock.algorithm.Redis") as mock_redis, \ patch("asyncio.sleep", dummy_sleep): mock_redis.set_lock.return_value = asyncio.Future() mock_redis.set_lock.return_value.set_result(0.005) mock_redis.unset_lock.return_value = asyncio.Future() mock_redis.unset_lock.return_value.set_result(0.005) mock_redis.is_locked.return_value = asyncio.Future() mock_redis.is_locked.return_value.set_result(False) mock_redis.clear_connections.return_value = asyncio.Future() mock_redis.clear_connections.return_value.set_result(MagicMock()) mock_redis.get_lock_ttl.return_value = asyncio.Future() mock_redis.get_lock_ttl.return_value.set_result( Lock(None, "resource_name", 1, -1, True)) lock_manager = Aioredlock(internal_lock_timeout=1.0) lock_manager.redis = mock_redis yield lock_manager, mock_redis
def locked_lock(): return Lock(None, "resource_name", 1, True)
def test_lock(self): lock_manager = Aioredlock() lock = Lock(lock_manager, "potato", 1, 1.0) assert lock.resource == "potato" assert lock.id == 1 assert lock.valid is False
async def dummy_lock(resource): lock_identifier = str(uuid.uuid4()) return Lock(mock_aioredlock, resource, lock_identifier, valid=True)
def unlocked_lock(lock_manager_redis_patched): lock_manager, _ = lock_manager_redis_patched lock = Lock(lock_manager, "other_resource_name", 1, -1, False) lock_manager._locks[lock.resource] = lock return lock
def locked_lock(lock_manager_redis_patched): lock_manager, _ = lock_manager_redis_patched lock = Lock(lock_manager, "resource_name", 1, -1, True) lock_manager._locks[lock.resource] = lock return lock
def test_lock(self): lock = Lock("potato", 1) assert lock.resource == "potato" assert lock.id == 1 assert lock.valid is False