class TestsWithDB(TestCaseWithDB, TestCaseSansDB):
"""Tests requiring DB, but not server setup.
- NB: We subclass TestCaseSansDB too, to pull in its .test_id_validation,
- which for Todo wouldn't run without a DB being set up due to the need for
- Processes with set IDs.
+ NB: We subclass TestCaseSansDB too, to run any tests there that due to any
+ Todo requiring a _saved_ Process wouldn't run without a DB.
"""
checked_class = Todo
default_init_kwargs = {'process': None, 'is_done': False,
'date': '2024-01-01'}
- # solely used for TestCaseSansDB.test_id_setting
- default_init_args = [None, False, '2024-01-01']
def setUp(self) -> None:
super().setUp()
self.cond2 = Condition(None)
self.cond2.save(self.db_conn)
self.default_init_kwargs['process'] = self.proc
- self.default_init_args[0] = self.proc
def test_Todo_init(self) -> None:
"""Test creation of Todo and what they default to."""
with self.assertRaises(BadFormatException):
self.assertEqual(Todo.by_date(self.db_conn, 'foo'), [])
+ def test_Todo_by_date_range_with_limits(self) -> None:
+ """Test .by_date_range_with_limits."""
+ self.check_by_date_range_with_limits('day')
+
def test_Todo_on_conditions(self) -> None:
"""Test effect of Todos on Conditions."""
assert isinstance(self.cond1.id_, int)
form_data = {'day_comment': '', 'make_type': 'full'}
self.check_post(form_data, '/day?date=2024-01-01&make_type=full', 302)
self.assertEqual(Todo.by_date(self.db_conn, '2024-01-01'), [])
+ proc = Process.by_id(self.db_conn, 1)
form_data['new_todo'] = str(proc.id_)
self.check_post(form_data, '/day?date=2024-01-01&make_type=full', 302)
todos = Todo.by_date(self.db_conn, '2024-01-01')
self.assertEqual(1, len(todos))
todo1 = todos[0]
self.assertEqual(todo1.id_, 1)
+ proc = Process.by_id(self.db_conn, 1)
self.assertEqual(todo1.process.id_, proc.id_)
self.assertEqual(todo1.is_done, False)
+ proc2 = Process.by_id(self.db_conn, 2)
form_data['new_todo'] = str(proc2.id_)
self.check_post(form_data, '/day?date=2024-01-01&make_type=full', 302)
todos = Todo.by_date(self.db_conn, '2024-01-01')
todo1 = todos[1]
self.assertEqual(todo1.id_, 2)
+ proc2 = Process.by_id(self.db_conn, 1)
+ todo1 = Todo.by_date(self.db_conn, '2024-01-01')[0]
+ self.assertEqual(todo1.id_, 1)
self.assertEqual(todo1.process.id_, proc2.id_)
self.assertEqual(todo1.is_done, False)
form_data = {'day_comment': '', 'todo_id': [1], 'make_type': 'full',
'comment': [''], 'done': [], 'effort': ['']}
self.check_post(form_data, '/day?date=2024-01-01&make_type=full', 302)
+ todo = Todo.by_date(self.db_conn, '2024-01-01')[0]
self.assertEqual(todo.is_done, False)
form_data = {'day_comment': '', 'todo_id': [1], 'done': [1],
'make_type': 'full', 'comment': [''], 'effort': ['']}
self.check_post(form_data, '/day?date=2024-01-01&make_type=full', 302)
+ todo = Todo.by_date(self.db_conn, '2024-01-01')[0]
self.assertEqual(todo.is_done, True)
def test_do_GET_todo(self) -> None:
self.post_process()
form_data = {'day_comment': '', 'new_todo': 1, 'make_type': 'full'}
self.check_post(form_data, '/day?date=2024-01-01&make_type=full', 302)
- self.check_get('/todo', 400)
- self.check_get('/todo?id=', 400)
+ self.check_get('/todo', 404)
+ self.check_get('/todo?id=', 404)
self.check_get('/todo?id=foo', 400)
self.check_get('/todo?id=0', 404)
self.check_get('/todo?id=1', 200)