soulsync/tests/discovery
BoulderBadgeDad c21031b9bc #913: add group_similars_by_seed assembly helper (pure, tested)
The stored similar_artists rows key the similar artist by the SEED's source/db id, not its name,
so rank_recommended_artists can't consume them directly. group_similars_by_seed resolves each
row's source id to a seed name via a caller-supplied id_to_name map and reshapes to the
{seed_name: [{'name': similar}]} the ranker wants — the fragile id->name join, now pure + tested
(dataclass + dict rows, unknown-id drop, non-seed drop, group->rank end-to-end). 15 tests total.
2026-06-23 22:53:57 -07:00
..
__init__.py
test_cancel_sync_idempotent.py #702: make mirrored-playlist cancel/reset/delete idempotent (un-wedge LB weekly sync) 2026-06-11 12:55:55 -07:00
test_discovery_beatport.py
test_discovery_deezer.py
test_discovery_endpoints.py #702: make mirrored-playlist cancel/reset/delete idempotent (un-wedge LB weekly sync) 2026-06-11 12:55:55 -07:00
test_discovery_listenbrainz.py
test_discovery_playlist.py Fix #785: file/CSV playlists fail to match (raw 'Artist - Title' titles) 2026-06-04 21:13:23 -07:00
test_discovery_spotify_public.py
test_discovery_sync.py Sync: append mode preserves the playlist image like reconcile (#811) 2026-06-07 23:25:42 -07:00
test_discovery_tidal.py
test_discovery_youtube.py #909: backfill the YT-artist column from a confident match instead of 'Unknown Artist' 2026-06-23 11:54:55 -07:00
test_listening_recommendations.py #913: add group_similars_by_seed assembly helper (pure, tested) 2026-06-23 22:53:57 -07:00
test_manual_match.py #799: add equivalence proof that should_rediscover == original pre-scan 2026-06-05 11:17:49 -07:00
test_quality_scanner_typed_album.py
test_similar_artists_library_filter.py
test_sync_database_only_matcher.py Playlist sync: honor the DURABLE manual match, not just the volatile cache 2026-06-21 18:15:20 -07:00