class TestsWithDB(TestCaseWithDB):
"""Tests requiring DB, but not server setup."""
checked_class = Todo
+ default_init_kwargs = {'process': None, 'is_done': False,
+ 'date': '2024-01-01'}
def setUp(self) -> None:
super().setUp()
self.cond1.save(self.db_conn)
self.cond2 = Condition(None)
self.cond2.save(self.db_conn)
+ self.default_init_kwargs['process'] = self.proc
def test_Todo_init(self) -> None:
"""Test creation of Todo and what they default to."""
self.assertEqual(todo_yes_id.enables, [])
self.assertEqual(todo_yes_id.disables, [])
- def test_Todo_saving_and_caching(self) -> None:
- """Test .save."""
- kwargs = {'id_': 1,
- 'process': self.proc,
- 'is_done': False,
- 'date': self.date1}
- self.check_saving_and_caching(**kwargs)
- todo = Todo(None, self.proc, False, self.date1)
- todo.save(self.db_conn)
- self.assertEqual(todo.id_, 2)
-
def test_Todo_by_id(self) -> None:
"""Test findability of Todos."""
todo = Todo(1, self.proc, False, self.date1)
Todo.by_id(self.db_conn, todo_1.id_)
self.assertEqual(todo_0.children, [])
self.assertEqual(todo_2.parents, [])
+ todo_2.comment = 'foo'
+ with self.assertRaises(HandledException):
+ todo_2.remove(self.db_conn)
+ todo_2.comment = ''
+ todo_2.effort = 5
+ with self.assertRaises(HandledException):
+ todo_2.remove(self.db_conn)
+
+ def test_Todo_autoremoval(self) -> None:
+ """"Test automatic removal for Todo.effort < 0."""
+ todo_1 = Todo(None, self.proc, False, self.date1)
+ todo_1.save(self.db_conn)
+ todo_1.comment = 'foo'
+ todo_1.effort = -0.1
+ todo_1.save(self.db_conn)
+ Todo.by_id(self.db_conn, todo_1.id_)
+ todo_1.comment = ''
+ todo_1.save(self.db_conn)
+ with self.assertRaises(NotFoundException):
+ Todo.by_id(self.db_conn, todo_1.id_)
class TestsWithServer(TestCaseWithServer):