Musiksammlung/tests/test_cover.py
dschlueter 70c096cde4 Lint-Fixes, process-Disc-Validierung und Forgejo-CI
- ruff: Import-Sortierung, unused imports, Zeilenlängen behoben
- cli.py: _check_disc_counts_or_exit() extrahiert; auch process-Befehl
  prüft jetzt Disc-Anzahlen vor dem Umbenennen
- .forgejo/workflows/ci.yml: ruff + pytest auf push/PR gegen main

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 00:51:14 +01:00

43 lines
1.6 KiB
Python

"""Tests für Cover-Funktionen."""
from pathlib import Path
from musiksammlung.cover import find_cover
class TestFindCover:
"""Tests für find_cover."""
def test_finds_frontcover_jpg(self, tmp_path: Path) -> None:
(tmp_path / "frontcover.jpg").touch()
assert find_cover(tmp_path, "front") == tmp_path / "frontcover.jpg"
def test_finds_frontcover_png(self, tmp_path: Path) -> None:
(tmp_path / "frontcover.png").touch()
assert find_cover(tmp_path, "front") == tmp_path / "frontcover.png"
def test_jpg_preferred_over_png(self, tmp_path: Path) -> None:
(tmp_path / "frontcover.jpg").touch()
(tmp_path / "frontcover.png").touch()
# .jpg wird zuerst geprüft
assert find_cover(tmp_path, "front") == tmp_path / "frontcover.jpg"
def test_finds_backcover(self, tmp_path: Path) -> None:
(tmp_path / "backcover.jpg").touch()
assert find_cover(tmp_path, "back") == tmp_path / "backcover.jpg"
def test_returns_none_if_missing(self, tmp_path: Path) -> None:
assert find_cover(tmp_path, "front") is None
assert find_cover(tmp_path, "back") is None
def test_follows_symlink(self, tmp_path: Path) -> None:
real = tmp_path / "original.jpg"
real.touch()
link = tmp_path / "frontcover.jpg"
link.symlink_to(real)
assert find_cover(tmp_path, "front") == link
def test_ignores_wrong_names(self, tmp_path: Path) -> None:
(tmp_path / "cover.jpg").touch()
(tmp_path / "back.jpg").touch()
assert find_cover(tmp_path, "front") is None