diff --git a/tests/test_store.py b/tests/test_store.py index 5412f02..5360d79 100644 --- a/tests/test_store.py +++ b/tests/test_store.py @@ -2,38 +2,15 @@ import asyncio import pytest -from app.models import CurrentStatus, MonitorCreate, MonitorUpdate, State -from app.store import MonitorStore +from monitor_service.models import MonitorCreate +from monitor_service.store import MonitorStore -@pytest.mark.asyncio +@pytest.mark.anyio async def test_concurrent_creates_are_not_lost() -> None: store = MonitorStore() - await asyncio.gather(*[ - store.create(MonitorCreate(name=f"m-{number}", url=f"https://example.com/{number}")) - for number in range(100) - ]) - assert len(await store.list()) == 100 - - -@pytest.mark.asyncio -async def test_stale_check_cannot_overwrite_updated_monitor() -> None: - store = MonitorStore() - item = await store.create(MonitorCreate(name="old", url="https://example.com")) - snapshot = await store.snapshot(item.id) - assert snapshot is not None - _, revision = snapshot - await store.update(item.id, MonitorUpdate(name="new")) - recorded = await store.record_status(item.id, revision, CurrentStatus(state=State.UP)) - assert recorded is None - current = await store.get(item.id) - assert current is not None and current.current_status.state == State.UNKNOWN - - -@pytest.mark.asyncio -async def test_defensive_copy_does_not_mutate_store() -> None: - store = MonitorStore() - item = await store.create(MonitorCreate(name="safe", url="https://example.com")) - item.name = "outside" - stored = await store.get(item.id) - assert stored is not None and stored.name == "safe" + await asyncio.gather(*( + store.create(MonitorCreate(name=f"m-{index}", url=f"https://example.com/{index}")) + for index in range(30) + )) + assert len(await store.list()) == 30