a pasted track link IS resolved + searched, but the 'bubble the exact track to the top'
step read getattr(t,'id') — and TrackResult has no top-level id (the source id lives in
_source_metadata['track_id']). so the bubble was a silent no-op: the linked track sat buried
among fuzzy text-search lookalikes and the user saw unrelated tracks. qobuz made it worse —
_qobuz_to_track_result never stamped _source_metadata at all, so the track had no id to match.
- stamp _source_metadata={'source':'qobuz','track_id':...} on qobuz TrackResults (mirrors tidal)
- extract the bubble into pure, tested helpers (linked_track_id / bubble_linked_track_first)
that read _source_metadata['track_id'] — fixes it for tidal too, str/int-safe, stable no-op
19 track-link tests (+6 new) + 87 qobuz/download tests green.
|
||
|---|---|---|
| .. | ||
| __init__.py | ||
| test_album_bundle_staging_sweep.py | ||
| test_album_serialize_drain.py | ||
| test_background_download_worker.py | ||
| test_candidate_ordering.py | ||
| test_deezer_pinning.py | ||
| test_download_engine.py | ||
| test_download_orchestrator.py | ||
| test_downloads_cancel.py | ||
| test_downloads_candidates.py | ||
| test_downloads_cleanup.py | ||
| test_downloads_history.py | ||
| test_downloads_lifecycle.py | ||
| test_downloads_master.py | ||
| test_downloads_post_processing.py | ||
| test_downloads_staging.py | ||
| test_downloads_status.py | ||
| test_downloads_task_worker.py | ||
| test_downloads_validation.py | ||
| test_file_finder.py | ||
| test_hifi_pinning.py | ||
| test_lidarr_pinning.py | ||
| test_orchestrator_search_mode.py | ||
| test_playlist_folder_exists.py | ||
| test_qobuz_pinning.py | ||
| test_rate_limit_policy.py | ||
| test_soulseek_aac_quality.py | ||
| test_soulseek_pinning.py | ||
| test_soundcloud_pinning.py | ||
| test_tidal_pinning.py | ||
| test_track_detail.py | ||
| test_track_link.py | ||
| test_track_metadata_backfill.py | ||
| test_wishlist_aggregator.py | ||
| test_worker_quality_ordering.py | ||
| test_youtube_pinning.py | ||