3.7 KiB
Modul tests/
Automatische Tests prüfen die aktuelle Software ohne Pi-Hardware.
-
test_controller.pyprüft Zustandswechsel, Stopp, Neustartvoraussetzungen und gespeicherten Modus mit kontrollierter Uhr und temporären Daten. -
test_web.pyprüft Demo-Bild und Webendpunkte über einen ASGI-Client. -
test_event_store.pyprüft dauerhafte Ereignisse, Profilzuordnung, Profil-Löschen, 30-Tage-Ablauf und die Erweiterung einer älteren Ereignistabelle. -
Lokal ausführen:
python3 -m unittest discover -s tests -v; für Webtests wird zusätzlichrequirements-dev.txtbenötigt. -
Hardwareverhalten, echte Pi-Kamera, WLAN, SSH-Tunnel und Außeneinsatz nicht aus einem grünen Host-Test ableiten; diese Prüfungen getrennt berichten.
-
Tests für neue Sicherheits- oder Zustandsregeln an beobachtbarem Verhalten ausrichten, nicht bloß interne Implementierung spiegeln.
-
test_detection.pyprüft Linienrichtung, Bestätigung, Flattern, Segmentgrenzen, Gruppenfreigabe, Sperrzeit, Neustart/Änderungen, Fehler-Watchdog, synchrone Frames und Konfigurations-API mit kontrollierter Uhr ohne Modell/Pi. -
Echte NanoDet-Inferenz zusätzlich mit ausdrücklich installiertem Modell prüfen; ein grüner Geometrietest bestätigt keine Erkennungsqualität.
-
test_detection_model.pyprüft atomare/identische Installation und Ablehnung falscher Downloads ohne Netzwerk. OptionalHALLOWEEN_TEST_MODELauf eine geprüfte ONNX-Datei setzen: Dann wird die echte Inferenz auf leerem Bild geprüft. -
test_pi_update.pyprüft echte temporäre Versions-/Datenverzeichnisse mit simuliertem systemd, Python-Paketsetup und HTTP-Ergebnis. Erfolgreichen Wechsel, Start-/HTTP-/Abhängigkeitsfehler, Rückfall samt Daten, alte flache Installation, Erstinstallation und Ablehnung fremder Units/manueller Server prüfen. Kein SSH, kein echter Dienst, kein Netzwerk und keine Hardware in diesen Tests. -
test_motion.pynutzt synthetische JPEGs und optional OpenCV für echten Optical Flow. Vorwärts/gegenläufig/parallel, Pfeilumkehr, gedrehte Geometrie, Bildruhe/Lichtwechsel, Bereichsgrenzen und Bildlücken prüfen. Diensttests prüfen Bestätigung, Sperrzeit, Stopp, Methodenmigration, Persistenz, verworfene alte Inferenzfehler und modellfreie Verarbeitung. Ohne OpenCV werden die Bildtests übersprungen; kein Ersatz für den Nahbereichstest am Pi. -
Nahbereichregression: kleiner 60x60-Bildausschnitt im 640x480-Frame, 2 Pixel Bewegung pro Bild; automatischen Trigger ohne manuelles Bereich-frei und Ablehnung der Gegenrichtung prüfen.
-
node tests/test_ui_status.jsprüft den echten JS-Statusrenderer isoliert ohne Browser/Netzwerk: automatische Freigabe vs. manuelle Bereich-frei-Flagge, Vorrang von Stopp/Sequenz/Sperrzeit und wirkungslose Betriebsmodi. -
test_event_images.pyprüft automatisch zugeordnete JPEGs mit synthetischem Motiv: beschnittener privater Bereich, Dateirechte, Neustart, Migration alter Ereignisse, DB-/Dateifehler, sichere ID-Abrufe, Header für Löschen und Erhalt von Ereignis/Profil. Motion-Test prüft die exakten JPEG-Bytes des Trigger-Frames. -
node tests/test_event_images_ui.jsprüft Vorschau/Ansehen und bestätigtes Bildlöschen am echten JS-Renderer mit erfundenen Daten, ohne Browser oder Netz. Abgebrochene Bestätigung löscht nichts; Ereignis bleibt nach Bildlöschung sichtbar. -
Update-Tests verlegen den festen Unitpfad nur in temporären Skriptkopien und simulieren sudo/runuser. Zweiten sudo-Aufruf stets ablehnen, damit Erfolg und Rückfall unabhängig von Passwort-Tickets geprüft werden. Abgelehnte Anmeldung, unprivilegierten Aufruf des internen Rootteils und unveränderte Daten prüfen. Kein echter root-/PAM-/systemd- oder Pi-Nachweis aus diesen Tests.