X-Git-Url: https://plomlompom.com/repos/feed.xml?a=blobdiff_plain;f=tests%2Ftodos.py;h=b47834c980a39c0ee7b7ce09f52917f712c6813c;hb=4815fe5c7be508e67ceec144968a81bdd6a923d4;hp=b5953dc69c0d593113095ddd3e82c463e03ec253;hpb=a7adce16f1969400cb988ff900f504157e454cce;p=plomtask diff --git a/tests/todos.py b/tests/todos.py index b5953dc..b47834c 100644 --- a/tests/todos.py +++ b/tests/todos.py @@ -31,9 +31,9 @@ class TestsWithDB(TestCaseWithDB): todo.save(self.db_conn) self.assertEqual(Todo.by_id(self.db_conn, 1), todo) with self.assertRaises(NotFoundException): - self.assertEqual(Todo.by_id(self.db_conn, 0), todo) + Todo.by_id(self.db_conn, 0) with self.assertRaises(NotFoundException): - self.assertEqual(Todo.by_id(self.db_conn, 2), todo) + Todo.by_id(self.db_conn, 2) def test_Todo_by_date(self) -> None: """Test findability of Todos by date.""" @@ -209,6 +209,52 @@ class TestsWithDB(TestCaseWithDB): node_2.children.remove(node_6) self.assertEqual(todo_1.get_step_tree(set(), set()), node_0) + def test_Todo_unsatisfied_steps(self) -> None: + """Test options of satisfying unfulfilled Process.explicit_steps.""" + assert isinstance(self.proc.id_, int) + todo_1 = Todo(None, self.proc, False, self.date1) + todo_1.save(self.db_conn) + proc2 = Process(None) + proc2.save(self.db_conn) + assert isinstance(proc2.id_, int) + proc3 = Process(None) + proc3.save(self.db_conn) + assert isinstance(proc3.id_, int) + proc4 = Process(None) + proc4.save(self.db_conn) + assert isinstance(proc4.id_, int) + proc3.set_steps(self.db_conn, [(None, proc4.id_, None)]) + proc2.set_steps(self.db_conn, [(None, self.proc.id_, None), + (None, self.proc.id_, None), + (None, proc3.id_, None)]) + todo_2 = Todo(None, proc2, False, self.date1) + todo_2.save(self.db_conn) + # test empty adoption does nothing + todo_2.adopt_from([]) + self.assertEqual(todo_2.children, []) + # test basic adoption + todo_2.adopt_from([todo_1]) + self.assertEqual(todo_2.children, [todo_1]) + self.assertEqual(todo_1.parents, [todo_2]) + # test making missing children + todo_2.make_missing_children(self.db_conn) + todo_3 = Todo.by_id(self.db_conn, 3) + todo_4 = Todo.by_id(self.db_conn, 4) + self.assertEqual(todo_2.children, [todo_1, todo_3, todo_4]) + self.assertEqual(todo_3.process, self.proc) + self.assertEqual(todo_3.parents, [todo_2]) + self.assertEqual(todo_3.children, []) + self.assertEqual(todo_4.process, proc3) + self.assertEqual(todo_4.parents, [todo_2]) + # test .make_missing_children doesn't further than top-level + self.assertEqual(todo_4.children, []) + # test .make_missing_children lower down the tree + todo_4.make_missing_children(self.db_conn) + todo_5 = Todo.by_id(self.db_conn, 5) + self.assertEqual(todo_5.process, proc4) + self.assertEqual(todo_4.children, [todo_5]) + self.assertEqual(todo_5.parents, [todo_4]) + def test_Todo_singularity(self) -> None: """Test pointers made for single object keep pointing to it.""" todo = Todo(None, self.proc, False, self.date1) @@ -255,7 +301,6 @@ class TestsWithServer(TestCaseWithServer): def post_and_reload(form_data: dict[str, object], status: int = 302) -> Todo: self.check_post(form_data, '/todo?id=1', status, '/') - self.db_conn.cached_todos = {} return Todo.by_date(self.db_conn, '2024-01-01')[0] # test minimum form_data = {'title': '', 'description': '', 'effort': 1}