soulsync/tests/imports
BoulderBadgeDad 319b6483a2 integrity: don't quarantine longer masters/versions as 'truncated' (#937)
the duration-agreement check used abs() drift, so a file running LONGER than the metadata
(a remaster with a longer outro, an extended cut) was rejected the same as a truncated one —
e.g. A-Ha 'Take on Me' remaster at 228.5s vs 225.0s expected, quarantined for +3.5s.

but a longer file is the OPPOSITE of truncated. make the auto tolerance asymmetric: keep the
tight 3s/5s bound for SHORTER files (the truncation case the check exists for), allow up to
15s in the LONGER direction for version/master differences. a wrong song still trips it (off
by far more than 15s), and a user-pinned tolerance is honoured symmetrically. direction-aware
rejection message too. 4 new tests; 274 integrity/import tests green.
2026-06-27 15:25:13 -07:00
..
test_album_grouping.py Library: group imported albums by canonical release id, not just the name string 2026-06-18 09:16:00 -07:00
test_album_matching_exact_id.py
test_album_matching_helper.py
test_album_position.py Auto-download: resolve an album track's real position from its album (not 1/1) 2026-06-22 13:32:24 -07:00
test_album_search_scoring.py
test_auto_import_clear_completed_endpoint.py
test_auto_import_context_shape.py
test_auto_import_executor.py
test_auto_import_live_progress.py
test_auto_import_multi_disc_matching.py
test_auto_import_multi_source_fallback.py
test_auto_import_scanner_grouping.py
test_auto_import_tag_reader_real_files.py
test_build_single_import_context_typed_path.py
test_dedup_orphan_cleanup.py
test_duration_tolerance_resolution.py
test_expected_duration_for_check.py
test_file_integrity.py integrity: don't quarantine longer masters/versions as 'truncated' (#937) 2026-06-27 15:25:13 -07:00
test_folder_artist_override.py
test_import_album.py
test_import_context.py
test_import_file_ops.py fix: atomic file placement so Jellyfin can't index a half-written track (null-disc) 2026-06-23 23:17:50 -07:00
test_import_filename.py
test_import_guards.py
test_import_paths.py
test_import_pipeline.py fix: resolve relative library paths fully + run quality gate before AcoustID 2026-06-14 23:45:55 +02:00
test_import_rejection_reason.py
test_import_resolution_single_track_context.py
test_import_routes.py #922: import search labelled Spotify Free users' primary source as 'Deezer' 2026-06-24 08:43:52 -07:00
test_import_side_effects.py
test_import_singles_route_through_album_path.py
test_import_staging.py
test_lossy_copy_delete_original.py
test_normalize_disc_number.py Multi-disc: file the track in the disc folder that matches its tag (Sokhi) 2026-06-22 10:56:53 -07:00
test_quality_guard.py
test_quarantine_management.py fix(quality): .aiff probe class + refresh tests drifted by the 2.7.4 merge (#896) 2026-06-24 21:40:14 +02:00
test_rematch_apply.py #889 Phase 4: the Re-identify modal + apply backend 2026-06-18 15:37:56 -07:00
test_rematch_hints.py #889 Phase 1: re-identify hint store (DB table + pure create/find/consume seam) 2026-06-18 15:15:41 -07:00
test_rematch_hints_seam.py #889: FIX data loss — re-identify to the same release no longer deletes the file 2026-06-18 17:13:46 -07:00
test_rematch_search.py #889 Phase 3: re-identify search — multi-source track→release lookup + API 2026-06-18 15:31:33 -07:00
test_search_match_endpoints.py
test_silence_guard.py
test_single_to_album.py Library: wire single->album resolution into import detection (gated, fail-safe) 2026-06-18 09:30:11 -07:00
test_track_number_resolver.py
test_track_number_strip.py #890: strip leading track-number prefix from filename-derived titles 2026-06-18 18:35:04 -07:00
test_version_mismatch_fallback.py