Musiksammlung/tests
dschlueter e75e5d7de0 feat: GnuDB fallback with retries when abcde CDDB lookup returns nothing
- New module cddb.py: direct GnuDB/FreeDB HTTP lookup using CDDB protocol,
  with same retry+random-delay logic as MusicBrainz barcode lookup
- get_discid() reads disc fingerprint via cd-discid before ripping
- If abcde returns no CDDB track data, lookup_by_discid() queries GnuDB
  directly (up to 3 retries, 2-6 s random pause between attempts)
- TrackInfo moved from ripper.py to models.py to break circular import
  (cddb.py and ripper.py both use TrackInfo)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 07:24:16 +01:00
..
__init__.py Fix and expand tests: 63 tests passing, covers all core modules 2026-02-18 00:00:44 +01:00
test_cli.py feat: auto-rename album directory after in-place apply 2026-02-18 06:49:17 +01:00
test_cover.py Opus/M4A-Cover-Embedding, cover.py-Tests und OCR-Tests 2026-02-18 04:50:13 +01:00
test_llm_parser.py LLM-Parser-Tests, check-Befehl und Cover-Doku 2026-02-18 00:45:49 +01:00
test_models.py Fix and expand tests: 63 tests passing, covers all core modules 2026-02-18 00:00:44 +01:00
test_musicbrainz.py feat: retry MusicBrainz barcode lookup with random delay on empty result 2026-02-18 07:16:32 +01:00
test_ocr.py Opus/M4A-Cover-Embedding, cover.py-Tests und OCR-Tests 2026-02-18 04:50:13 +01:00
test_organizer.py feat: auto-rename album directory after in-place apply 2026-02-18 06:49:17 +01:00
test_playlist.py Lint-Fixes, process-Disc-Validierung und Forgejo-CI 2026-02-18 00:51:14 +01:00
test_ripper.py feat: GnuDB fallback with retries when abcde CDDB lookup returns nothing 2026-02-18 07:24:16 +01:00
test_tagger.py Opus/M4A-Cover-Embedding, cover.py-Tests und OCR-Tests 2026-02-18 04:50:13 +01:00
test_vision_llm.py Fix and expand tests: 63 tests passing, covers all core modules 2026-02-18 00:00:44 +01:00