X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/move_up?a=blobdiff_plain;f=tests%2Fconditions.py;h=db6c745da7a0fd6c4b7afbe9ac740f45fbf2572e;hb=3bf943fedc1e0e67a010dd9f1a5fb8791c390a75;hp=3b95de1f3fe7e89cc30a14f149983d14ad690962;hpb=e14580b4ee47363cad317e4ec1de91affe03d53a;p=plomtask diff --git a/tests/conditions.py b/tests/conditions.py index 3b95de1..db6c745 100644 --- a/tests/conditions.py +++ b/tests/conditions.py @@ -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).""" @@ -45,6 +62,11 @@ class TestsWithServer(TestCaseWithServer): form_data = {'title': 'foo', 'description': 'foo'} self.check_post(form_data, '/condition', 302, '/condition?id=1') self.assertEqual(1, len(Condition.all(self.db_conn))) + form_data['delete'] = '' + self.check_post(form_data, '/condition?id=', 404) + self.check_post(form_data, '/condition?id=2', 404) + self.check_post(form_data, '/condition?id=1', 302, '/conditions') + self.assertEqual(0, len(Condition.all(self.db_conn))) def test_do_GET(self) -> None: """Test /condition and /conditions response codes."""