feat(discovery): SimilaritySource protocol + FakeSimilaritySource

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jonathan
2026-07-12 00:03:45 +02:00
parent 0ddc9db611
commit 889e33355f
4 changed files with 53 additions and 0 deletions
+14
View File
@@ -0,0 +1,14 @@
from lyra_worker.adapters.fakes import FakeSimilaritySource
from lyra_worker.similarity.base import SimilarArtist, SimilaritySource
def test_fake_conforms_to_protocol_and_returns_similar():
src = FakeSimilaritySource(similar={"seed": [SimilarArtist("c1", "Cand", 0.9)]})
assert isinstance(src, SimilaritySource)
assert src.health() is True
assert src.similar_artists("seed") == [SimilarArtist("c1", "Cand", 0.9)]
assert src.similar_artists("unknown") == []
def test_fake_can_report_unhealthy():
assert FakeSimilaritySource(healthy=False).health() is False