feat: monitor sweep, real MB browser, and worker-loop wiring

This commit is contained in:
Jonathan
2026-07-11 12:35:07 +02:00
parent 1f23aaa0e8
commit 133f6219ae
6 changed files with 118 additions and 1 deletions
+22
View File
@@ -0,0 +1,22 @@
from lyra_worker.adapters.fakes import FakeMbBrowser
from lyra_worker.browser import ReleaseGroupInfo
from lyra_worker.monitor import MonitorConfig, sweep
from tests.conftest import insert_watched_artist
CFG = MonitorConfig(enabled=True)
def test_sweep_discovers_then_enqueues(conn):
insert_watched_artist(conn, mbid="a1", name="John Mayer", auto_monitor_future=True)
browser = FakeMbBrowser(
releases={"a1": [ReleaseGroupInfo("rg-new", "New", "Album", (), "2999-01-01")]}
)
sweep(conn, browser, CFG)
with conn.cursor() as cur:
cur.execute(
'SELECT count(*) FROM "Request" r '
'JOIN "MonitoredRelease" mr ON mr.id = r."monitoredReleaseId" '
'WHERE mr."rgMbid" = %s',
("rg-new",),
)
assert cur.fetchone()[0] == 1 # the newly-discovered monitored release got a job