ppt-web / tests /test_cache_service_fallback.py
26fwyzpz6f-max
Clean deploy without binary files
6aecb2e
Raw
History Blame Contribute Delete
1.61 kB
import pytest
@pytest.mark.asyncio
async def test_get_cache_service_disables_valkey_after_connection_failure(monkeypatch):
import landppt.services.cache_service as mod
from landppt.core.config import app_config
await mod.close_cache_service()
monkeypatch.setattr(app_config, "cache_backend", "valkey")
monkeypatch.setattr(app_config, "valkey_url", "valkey://valkey:6379")
attempts = {"count": 0}
async def fake_connect(self):
attempts["count"] += 1
self.enabled = False
self._connected = False
self._client = None
return False
monkeypatch.setattr(mod.CacheService, "connect", fake_connect)
cache1 = await mod.get_cache_service()
cache2 = await mod.get_cache_service()
assert attempts["count"] == 1
assert cache1 is cache2
assert cache1.enabled is False
assert cache1.is_connected is False
await mod.close_cache_service()
@pytest.mark.asyncio
async def test_get_cache_service_keeps_memory_backend_without_connect_attempt(monkeypatch):
import landppt.services.cache_service as mod
from landppt.core.config import app_config
await mod.close_cache_service()
monkeypatch.setattr(app_config, "cache_backend", "memory")
attempts = {"count": 0}
async def fake_connect(self):
attempts["count"] += 1
return False
monkeypatch.setattr(mod.CacheService, "connect", fake_connect)
cache = await mod.get_cache_service()
assert attempts["count"] == 0
assert cache.enabled is False
assert cache.is_connected is False
await mod.close_cache_service()