X-Git-Url: https://plomlompom.com/repos/feed.xml?a=blobdiff_plain;f=tests%2Fprocesses.py;h=c6f49265f9fdd8a9fc1d0930e36584a1a3285f59;hb=3bf943fedc1e0e67a010dd9f1a5fb8791c390a75;hp=c718677f78e7afea5a95fdaa65e3c3981df96f1b;hpb=0ed3bc539d21d5536d0fc635760d88a2231587b9;p=plomtask diff --git a/tests/processes.py b/tests/processes.py index c718677..c6f4926 100644 --- a/tests/processes.py +++ b/tests/processes.py @@ -3,6 +3,7 @@ from unittest import TestCase from tests.utils import TestCaseWithDB, TestCaseWithServer from plomtask.processes import Process, ProcessStep, ProcessStepsNode from plomtask.conditions import Condition +from plomtask.todos import Todo from plomtask.exceptions import NotFoundException, HandledException @@ -157,6 +158,30 @@ class TestsWithDB(TestCaseWithDB): p_loaded = Process.by_id(self.db_conn, self.proc1.id_) self.assertEqual(self.proc1.title.history, p_loaded.title.history) + def test_Process_removal(self) -> None: + """Test removal of Processes and ProcessSteps.""" + assert isinstance(self.proc3.id_, int) + self.proc1.remove(self.db_conn) + self.assertEqual({self.proc2.id_, self.proc3.id_}, + set(p.id_ for p in Process.all(self.db_conn))) + self.proc2.set_steps(self.db_conn, [(None, self.proc3.id_, None)]) + with self.assertRaises(HandledException): + self.proc3.remove(self.db_conn) + self.proc2.explicit_steps[0].remove(self.db_conn) + retrieved = Process.by_id(self.db_conn, self.proc2.id_) + self.assertEqual(retrieved.explicit_steps, []) + self.proc2.set_steps(self.db_conn, [(None, self.proc3.id_, None)]) + step = retrieved.explicit_steps[0] + self.proc2.remove(self.db_conn) + with self.assertRaises(NotFoundException): + ProcessStep.by_id(self.db_conn, step.id_) + todo = Todo(None, self.proc3, False, '2024-01-01') + todo.save(self.db_conn) + with self.assertRaises(HandledException): + self.proc3.remove(self.db_conn) + todo.remove(self.db_conn) + self.proc3.remove(self.db_conn) + class TestsWithServer(TestCaseWithServer): """Module tests against our HTTP server/handler (and database).""" @@ -165,7 +190,7 @@ class TestsWithServer(TestCaseWithServer): """Test POST /process and its effect on the database.""" self.assertEqual(0, len(Process.all(self.db_conn))) form_data = {'title': 'foo', 'description': 'foo', 'effort': 1.1} - self.check_post(form_data, '/process?id=', 302, '/') + self.check_post(form_data, '/process?id=', 302, '/process?id=1') self.assertEqual(1, len(Process.all(self.db_conn))) self.check_post(form_data, '/process?id=FOO', 400) form_data['effort'] = 'foo' @@ -180,16 +205,20 @@ class TestsWithServer(TestCaseWithServer): self.assertEqual(1, len(Process.all(self.db_conn))) form_data = {'title': 'foo', 'description': 'foo', 'effort': 1.0, 'condition': []} - self.check_post(form_data, '/process?id=', 302, '/') + self.check_post(form_data, '/process?id=', 302, '/process?id=2') form_data['condition'] = [1] self.check_post(form_data, '/process?id=', 404) form_data_cond = {'title': 'foo', 'description': 'foo'} - self.check_post(form_data_cond, '/condition', 302, '/') - self.check_post(form_data, '/process?id=', 302, '/') + self.check_post(form_data_cond, '/condition', 302, '/condition?id=1') + self.check_post(form_data, '/process?id=', 302, '/process?id=3') form_data['disables'] = [1] - self.check_post(form_data, '/process?id=', 302, '/') + self.check_post(form_data, '/process?id=', 302, '/process?id=4') form_data['enables'] = [1] - self.check_post(form_data, '/process?id=', 302, '/') + self.check_post(form_data, '/process?id=', 302, '/process?id=5') + form_data['delete'] = '' + self.check_post(form_data, '/process?id=', 404) + self.check_post(form_data, '/process?id=6', 404) + self.check_post(form_data, '/process?id=5', 302, '/processes') def test_do_GET(self) -> None: """Test /process and /processes response codes."""