+ t1 = Todo(None, self.proc, False, self.date1)
+ t1.save(self.db_conn)
+ t2 = Todo(None, self.proc, False, self.date1)
+ t2.save(self.db_conn)
+ self.assertEqual(Todo.by_date(self.db_conn, self.date1), [t1, t2])
+ self.assertEqual(Todo.by_date(self.db_conn, self.date2), [])
+ self.assertEqual(Todo.by_date(self.db_conn, 'foo'), [])
+
+ def test_Todo_from_process(self) -> None:
+ """Test spawning of Todo attributes from Process."""
+ assert isinstance(self.cond1.id_, int)
+ assert isinstance(self.cond2.id_, int)
+ self.proc.set_conditions(self.db_conn, [self.cond1.id_])
+ todo = Todo(None, self.proc, False, self.date1)
+ self.assertEqual(todo.conditions, [self.cond1])
+ todo.set_conditions(self.db_conn, [self.cond2.id_])
+ self.assertEqual(todo.conditions, [self.cond2])
+ self.assertEqual(self.proc.conditions, [self.cond1])
+ self.proc.set_enables(self.db_conn, [self.cond1.id_])
+ todo = Todo(None, self.proc, False, self.date1)
+ self.assertEqual(todo.enables, [self.cond1])
+ todo.set_enables(self.db_conn, [self.cond2.id_])
+ self.assertEqual(todo.enables, [self.cond2])
+ self.assertEqual(self.proc.enables, [self.cond1])
+ self.proc.set_disables(self.db_conn, [self.cond1.id_])
+ todo = Todo(None, self.proc, False, self.date1)
+ self.assertEqual(todo.disables, [self.cond1])
+ todo.set_disables(self.db_conn, [self.cond2.id_])
+ self.assertEqual(todo.disables, [self.cond2])
+ self.assertEqual(self.proc.disables, [self.cond1])
+
+ def test_Todo_on_conditions(self) -> None:
+ """Test effect of Todos on Conditions."""
+ assert isinstance(self.cond1.id_, int)
+ assert isinstance(self.cond2.id_, int)
+ todo = Todo(None, self.proc, False, self.date1)
+ todo.save(self.db_conn)
+ todo.set_enables(self.db_conn, [self.cond1.id_])
+ todo.set_disables(self.db_conn, [self.cond2.id_])
+ todo.is_done = True
+ self.assertEqual(self.cond1.is_active, True)
+ self.assertEqual(self.cond2.is_active, False)
+ todo.is_done = False
+ self.assertEqual(self.cond1.is_active, True)
+ self.assertEqual(self.cond2.is_active, False)
+
+ def test_Todo_enablers_disablers(self) -> None:
+ """Test Todo.enablers_for_at/disablers_for_at."""
+ assert isinstance(self.cond1.id_, int)
+ assert isinstance(self.cond2.id_, int)
+ todo1 = Todo(None, self.proc, False, self.date1)