feat: monitor sweep, real MB browser, and worker-loop wiring
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
import os
|
||||
|
||||
import pytest
|
||||
|
||||
pytestmark = pytest.mark.skipif(
|
||||
not os.environ.get("LYRA_LIVE_TESTS"),
|
||||
reason="hits the real MusicBrainz API; set LYRA_LIVE_TESTS=1 to run",
|
||||
)
|
||||
|
||||
|
||||
def test_search_and_browse_real_artist():
|
||||
from lyra_worker._mbbrowser import MusicBrainzBrowser
|
||||
|
||||
browser = MusicBrainzBrowser()
|
||||
hits = browser.search_artist("John Mayer")
|
||||
assert hits and any("John Mayer" in h.name for h in hits)
|
||||
releases = browser.browse_release_groups(hits[0].mbid)
|
||||
assert any(r.title for r in releases)
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user