"""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, UHD_MIN_BYTES, 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_bd50_bleibt_bluray(): # BD-50 = 50 * 10^9 Bytes ≈ 46,6 GiB — knapp unter der UHD-Schwelle assert classify(CDS_DATA_1, 50 * 1000**3) == "bluray" def test_uhd_ab_schwelle(): # BD-66 (66 GB) und BD-100 sind 4K-UHD-Medien assert classify(CDS_DATA_1, 66 * 1000**3) == "uhd" assert classify(CDS_DATA_1, 100 * 1000**3) == "uhd" assert classify(CDS_DATA_1, UHD_MIN_BYTES) == "uhd" def test_unbekannter_status(): assert classify(999, 5 * 1024**3) == "unknown" assert classify(0, 0) == "unknown"