Initial curated ServiceMap source from 7a0a61232d05ba9097432abef6f7f4102a64d0b8

This commit is contained in:
Public Source Publisher committed 2026-10-01 01:34:38 +02:00
commit 105251b9c8
96 files changed
+23587

No files matched your search

+69
View File
@@ -0,0 +1,69 @@
import asyncio
from contextlib import suppress
from app.scheduler import scheduled_probe_loop
class EmptyStore:
def __init__(self) -> None:
self.prune_calls = 0
def list_services(self) -> list[object]:
return []
def prune_probes(self, retention_days: int) -> int:
assert retention_days == 30
self.prune_calls += 1
return 0
class SyntheticStore(EmptyStore):
def demo_active(self) -> bool:
return True
def list_services(self) -> list[object]:
raise AssertionError("synthetic demo must not start live probes")
def test_scheduler_runs_first_cycle_before_initial_sleep() -> None:
async def scenario() -> None:
store = EmptyStore()
task = asyncio.create_task(
scheduled_probe_loop(
store, # type: ignore[arg-type]
interval_seconds=3600,
timeout_seconds=1.0,
retries=0,
concurrency=1,
retention_days=30,
)
)
await asyncio.sleep(0)
assert store.prune_calls == 1
task.cancel()
with suppress(asyncio.CancelledError):
await task
asyncio.run(scenario())
def test_scheduler_pauses_live_probes_for_synthetic_demo() -> None:
async def scenario() -> None:
store = SyntheticStore()
task = asyncio.create_task(
scheduled_probe_loop(
store, # type: ignore[arg-type]
interval_seconds=3600,
timeout_seconds=1.0,
retries=0,
concurrency=1,
retention_days=30,
)
)
await asyncio.sleep(0)
assert store.prune_calls == 1
task.cancel()
with suppress(asyncio.CancelledError):
await task
asyncio.run(scenario())