780d114fe4
Vorher: Dockerfile unbaubar (makepkg ist ein Arch-Paket, existiert in Debian nicht) und KEIN einziges Ripping-Tool im Image — jeder Rip endete sofort. Disc-Erkennung via `file -L` konnte auf Block-Devices strukturell nie etwas erkennen; ihr Test mockte sich die Ausgabe passend. - makemkv-oss/bin 1.18.4 multi-stage (bookworm-gepinnt), EULA via tmp/eula_accepted, Beta-Key aus MAKEMKV_APP_KEY (entrypoint.sh) - makemkvcon-Aufruf + PRGV-Parsing laut makemkv.com/developers/usage.txt (AGENTS Regel D), HandBrake raus aus dem Ripp-Pfad (KONZEPT: lossless=Muss) - detection.py: CDROM_DISC_STATUS + BLKGETSIZE64 (cd/dvd/bluray), pure classify() mit ehrlichen Tests - tasks.py: rip_disc als einziger Celery-Task, schreibt Status/Fortschritt nach Postgres (db.py), Ausgabe auf /app/media (Volume) statt totem /output Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
"""Tests für detection.py — die pure Zuordnung classify().
|
|
|
|
Der Vorgänger (`file -L` auf ein Block-Device) konnte strukturell nie etwas
|
|
erkennen; sein Test mockte sich die file-Ausgabe passend zurecht. Hier wird
|
|
nur echte, deterministische Logik getestet — die ioctl-Aufrufe selbst sind
|
|
dünne Kernel-Durchreichen und werden im E2E-Test mit echter Disc bewiesen.
|
|
"""
|
|
|
|
from detection import (
|
|
BLURAY_MIN_BYTES,
|
|
CDS_AUDIO,
|
|
CDS_DATA_1,
|
|
CDS_MIXED,
|
|
classify,
|
|
)
|
|
|
|
|
|
def test_audio_cd():
|
|
assert classify(CDS_AUDIO, 700 * 1024**2) == "cd"
|
|
|
|
|
|
def test_mixed_mode_zaehlt_als_cd():
|
|
assert classify(CDS_MIXED, 700 * 1024**2) == "cd"
|
|
|
|
|
|
def test_dvd_unter_schwelle():
|
|
# DVD9 = ~8,5 GB — liegt unter der 10-GB-Blu-ray-Schwelle
|
|
assert classify(CDS_DATA_1, 8 * 1024**3) == "dvd"
|
|
|
|
|
|
def test_bluray_ab_schwelle():
|
|
# BD-SL = 25 GB
|
|
assert classify(CDS_DATA_1, 25 * 1024**3) == "bluray"
|
|
assert classify(CDS_DATA_1, BLURAY_MIN_BYTES) == "bluray"
|
|
|
|
|
|
def test_unbekannter_status():
|
|
assert classify(999, 5 * 1024**3) == "unknown"
|
|
assert classify(0, 0) == "unknown"
|