feat(worker): discovery chunk_size + seed-count in result (retire max_seeds)
Reconciled the pre-existing test_config_from_config_parses_and_defaults test in test_discovery.py, which referenced max_seeds/maxSeeds and would otherwise have broken.
This commit is contained in:
@@ -88,9 +88,26 @@ def test_source_with_raising_health_is_skipped_not_fatal(conn):
|
||||
|
||||
|
||||
def test_config_from_config_parses_and_defaults():
|
||||
cfg = DiscoveryConfig.from_config({"discover.enabled": "true", "discover.maxSeeds": "10",
|
||||
cfg = DiscoveryConfig.from_config({"discover.enabled": "true", "discover.chunkSize": "10",
|
||||
"discover.minScore": "0.3"})
|
||||
assert cfg.enabled is True and cfg.max_seeds == 10 and cfg.min_score == 0.3
|
||||
assert cfg.enabled is True and cfg.chunk_size == 10 and cfg.min_score == 0.3
|
||||
d = DiscoveryConfig.from_config({})
|
||||
assert (d.enabled, d.interval_hours, d.max_seeds, d.similar_per_seed,
|
||||
d.albums_per_artist, d.min_score) == (False, 168, 50, 20, 1, 0.0)
|
||||
assert (d.enabled, d.interval_hours, d.chunk_size, d.similar_per_seed,
|
||||
d.albums_per_artist, d.min_score) == (False, 168, 5, 20, 1, 0.0)
|
||||
|
||||
|
||||
def test_run_discovery_processes_at_most_chunk_size_seeds(conn):
|
||||
from lyra_worker.discovery import DiscoveryConfig, run_discovery
|
||||
from lyra_worker.adapters.fakes import FakeMbBrowser, FakeSimilaritySource
|
||||
from lyra_worker.similarity.base import SimilarArtist
|
||||
from tests.conftest import insert_watched_artist
|
||||
for i in range(4):
|
||||
insert_watched_artist(conn, mbid=f"s{i}", name=f"Seed{i}")
|
||||
src = FakeSimilaritySource(similar={f"s{i}": [SimilarArtist(f"c{i}", f"Cand{i}", 0.9)] for i in range(4)})
|
||||
cfg = DiscoveryConfig.from_config({"discover.chunkSize": "2"})
|
||||
result = run_discovery(conn, [src], FakeMbBrowser(), cfg)
|
||||
assert result.seeds == 2 # only chunk_size seeds this call
|
||||
# exactly 2 seeds now have lastDiscoveredAt set
|
||||
with conn.cursor() as cur:
|
||||
cur.execute('SELECT count(*) FROM "WatchedArtist" WHERE "lastDiscoveredAt" IS NOT NULL')
|
||||
assert cur.fetchone()[0] == 2
|
||||
|
||||
Reference in New Issue
Block a user