home · contact · privacy
Enable deletion of Conditions.
[plomtask] / tests / conditions.py
index 3b95de1f3fe7e89cc30a14f149983d14ad690962..6538e87019bfa7bffa0d8fccb22f8981500943d1 100644 (file)
@@ -1,7 +1,8 @@
 """Test Conditions module."""
 from tests.utils import TestCaseWithDB, TestCaseWithServer
 from plomtask.conditions import Condition
-from plomtask.exceptions import NotFoundException
+from plomtask.processes import Process
+from plomtask.exceptions import NotFoundException, HandledException
 
 
 class TestsWithDB(TestCaseWithDB):
@@ -36,6 +37,22 @@ class TestsWithDB(TestCaseWithDB):
         condition_retrieved = Condition.by_id(self.db_conn, 1)
         self.assertEqual(True, condition_retrieved.is_active)
 
+    def test_Condition_removal(self) -> None:
+        """Test removal of Condition."""
+        cond = Condition(None, False)
+        cond.save(self.db_conn)
+        assert isinstance(cond.id_, int)
+        proc = Process(None)
+        proc.save(self.db_conn)
+        proc.set_conditions(self.db_conn, [cond.id_], 'conditions')
+        proc.save(self.db_conn)
+        with self.assertRaises(HandledException):
+            cond.remove(self.db_conn)
+        proc.set_conditions(self.db_conn, [], 'conditions')
+        proc.save(self.db_conn)
+        cond.remove(self.db_conn)
+        self.assertEqual(Condition.all(self.db_conn), [])
+
 
 class TestsWithServer(TestCaseWithServer):
     """Module tests against our HTTP server/handler (and database)."""