"""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"