X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=tests%2Ftodos.py;h=7aed5f83a0eee3e2eb50845c42de9fd57e3aee0f;hb=696aed8a590fa9c67a6b9c723e2134b2663bd769;hp=b5953dc69c0d593113095ddd3e82c463e03ec253;hpb=e825a876e82ffbedf0234f4dfb6d6055d9e29241;p=plomtask diff --git a/tests/todos.py b/tests/todos.py index b5953dc..7aed5f8 100644 --- a/tests/todos.py +++ b/tests/todos.py @@ -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)