X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=tests%2Ftodos.py;h=74715653595b1f4f91404ec40f206bdd4a46d554;hb=5104eb7b33c386b6df7508405917408855e1468c;hp=a5dafd1a8f2b17e58dbc4006f8d6ad54d7bc9b85;hpb=c6ad5c1fe2811225648a1d1c74c667ed38b7671e;p=plomtask
diff --git a/tests/todos.py b/tests/todos.py
index a5dafd1..7471565 100644
--- a/tests/todos.py
+++ b/tests/todos.py
@@ -9,6 +9,7 @@ from plomtask.exceptions import (NotFoundException, BadFormatException,
class TestsWithDB(TestCaseWithDB):
"""Tests requiring DB, but not server setup."""
+ checked_class = Todo
def setUp(self) -> None:
super().setUp()
@@ -21,13 +22,40 @@ class TestsWithDB(TestCaseWithDB):
self.cond2 = Condition(None)
self.cond2.save(self.db_conn)
- def test_Todo_by_id(self) -> None:
- """Test creation and findability of Todos."""
- process_unsaved = Process(None)
- todo = Todo(None, process_unsaved, False, self.date1)
+ def test_Todo_init(self) -> None:
+ """Test creation of Todo and what they default to."""
+ process = Process(None)
with self.assertRaises(NotFoundException):
- todo.save(self.db_conn)
- process_unsaved.save(self.db_conn)
+ Todo(None, process, False, self.date1)
+ process.save(self.db_conn)
+ assert isinstance(self.cond1.id_, int)
+ assert isinstance(self.cond2.id_, int)
+ process.set_conditions(self.db_conn, [self.cond1.id_, self.cond2.id_])
+ process.set_enables(self.db_conn, [self.cond1.id_])
+ process.set_disables(self.db_conn, [self.cond2.id_])
+ todo_no_id = Todo(None, process, False, self.date1)
+ self.assertEqual(todo_no_id.conditions, [self.cond1, self.cond2])
+ self.assertEqual(todo_no_id.enables, [self.cond1])
+ self.assertEqual(todo_no_id.disables, [self.cond2])
+ todo_yes_id = Todo(5, process, False, self.date1)
+ self.assertEqual(todo_yes_id.conditions, [])
+ 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.save(self.db_conn)
self.assertEqual(Todo.by_id(self.db_conn, 1), todo)
with self.assertRaises(NotFoundException):
@@ -45,29 +73,6 @@ class TestsWithDB(TestCaseWithDB):
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)
@@ -257,14 +262,7 @@ class TestsWithDB(TestCaseWithDB):
def test_Todo_singularity(self) -> None:
"""Test pointers made for single object keep pointing to it."""
- todo = Todo(None, self.proc, False, self.date1)
- todo.save(self.db_conn)
- retrieved_todo = Todo.by_id(self.db_conn, 1)
- todo.is_done = True
- self.assertEqual(retrieved_todo.is_done, True)
- retrieved_todo = Todo.by_date(self.db_conn, self.date1)[0]
- retrieved_todo.is_done = False
- self.assertEqual(todo.is_done, False)
+ self.check_singularity('is_done', True, self.proc, False, self.date1)
def test_Todo_remove(self) -> None:
"""Test removal."""