feat: config-aware registry gating Qobuz on credentials; wire config into worker
This commit is contained in:
@@ -1,17 +1,30 @@
|
||||
from lyra_worker.adapters.qobuz import QobuzAdapter
|
||||
from lyra_worker.adapters.youtube import YouTubeAdapter
|
||||
from lyra_worker.registry import build_adapters
|
||||
|
||||
QOBUZ_CFG = {"qobuz.email": "me@example.com", "qobuz.password": "secret"}
|
||||
|
||||
def test_registry_returns_real_youtube_adapter():
|
||||
adapters = build_adapters()
|
||||
|
||||
def test_youtube_always_present_qobuz_skipped_without_config():
|
||||
adapters = build_adapters({})
|
||||
names = [a.name for a in adapters]
|
||||
assert "youtube" in names
|
||||
assert "qobuz" not in names # no creds -> health() false -> excluded
|
||||
|
||||
|
||||
def test_qobuz_included_when_configured():
|
||||
adapters = build_adapters(QOBUZ_CFG)
|
||||
names = [a.name for a in adapters]
|
||||
assert "qobuz" in names
|
||||
assert "youtube" in names
|
||||
qz = next(a for a in adapters if a.name == "qobuz")
|
||||
yt = next(a for a in adapters if a.name == "youtube")
|
||||
assert isinstance(qz, QobuzAdapter)
|
||||
assert isinstance(yt, YouTubeAdapter)
|
||||
assert yt.tier == 2
|
||||
assert yt.health() is True
|
||||
|
||||
|
||||
def test_registry_adapter_names_are_unique():
|
||||
names = [a.name for a in build_adapters()]
|
||||
def test_adapter_names_unique_and_qobuz_first():
|
||||
adapters = build_adapters(QOBUZ_CFG)
|
||||
names = [a.name for a in adapters]
|
||||
assert len(names) == len(set(names))
|
||||
assert names[0] == "qobuz" # tier 0 listed first
|
||||
|
||||
Reference in New Issue
Block a user