"""Tests für sn_basis/modules/pruef_ergebnis.py::ist_verfahrens_db_aktion/erlaubte_persistierung (Issue #65).""" import unittest from sn_basis.modules.pruef_ergebnis import pruef_ergebnis class IstVerfahrensDbAktionTests(unittest.TestCase): def test_liefert_true_fuer_alle_verfahrens_db_aktionen(self): """Prüft, dass ist_verfahrens_db_aktion für alle vier Verfahrens-DB-Aktionscodes True liefert.""" for aktion in ( "datei_wird_erzeugt", "datei_existiert", "datei_existiert_ueberschreiben", "datei_existiert_anhaengen", "datei_existiert_ueberspringen", ): with self.subTest(aktion=aktion): ergebnis = pruef_ergebnis(ok=True, aktion=aktion) self.assertTrue(ergebnis.ist_verfahrens_db_aktion) def test_liefert_false_fuer_andere_aktionen(self): """Prüft, dass ist_verfahrens_db_aktion für Nicht-Verfahrens-DB-Aktionen und ohne Aktion False liefert.""" for aktion in ("ok", "datenabruf", None): with self.subTest(aktion=aktion): ergebnis = pruef_ergebnis(ok=True, aktion=aktion) self.assertFalse(ergebnis.ist_verfahrens_db_aktion) class ErlaubtePersistierungTests(unittest.TestCase): def test_liefert_true_fuer_erzeugen_ueberschreiben_anhaengen(self): """Prüft, dass erlaubte_persistierung für Erzeugen/Überschreiben/Anhängen True liefert.""" for aktion in ("datei_wird_erzeugt", "datei_existiert_ueberschreiben", "datei_existiert_anhaengen"): with self.subTest(aktion=aktion): ergebnis = pruef_ergebnis(ok=True, aktion=aktion) self.assertTrue(ergebnis.erlaubte_persistierung) def test_liefert_false_fuer_ueberspringen_und_reines_existieren(self): """Prüft, dass erlaubte_persistierung bei Überspringen und reinem 'datei_existiert' False liefert.""" for aktion in ("datei_existiert_ueberspringen", "datei_existiert", "ok", None): with self.subTest(aktion=aktion): ergebnis = pruef_ergebnis(ok=True, aktion=aktion) self.assertFalse(ergebnis.erlaubte_persistierung) if __name__ == "__main__": unittest.main()