home · contact · privacy
Refactor from_table_row methods of core DB models.
[plomtask] / tests / todos.py
index 6bc5a05fbe465c57d2cdef1d69735d4c0c00cb2e..a90f466cb99a201d353ea5434d5ea9c336dae0da 100644 (file)
@@ -1,7 +1,6 @@
 """Test Todos module."""
 from tests.utils import TestCaseWithDB, TestCaseWithServer
 from plomtask.todos import Todo
-from plomtask.days import Day
 from plomtask.processes import Process
 from plomtask.conditions import Condition
 from plomtask.exceptions import (NotFoundException, BadFormatException,
@@ -13,10 +12,8 @@ class TestsWithDB(TestCaseWithDB):
 
     def setUp(self) -> None:
         super().setUp()
-        self.day1 = Day('2024-01-01')
-        self.day1.save(self.db_conn)
-        self.day2 = Day('2024-01-02')
-        self.day2.save(self.db_conn)
+        self.date1 = '2024-01-01'
+        self.date2 = '2024-01-02'
         self.proc = Process(None)
         self.proc.save(self.db_conn)
         self.cond1 = Condition(None)
@@ -27,7 +24,7 @@ class TestsWithDB(TestCaseWithDB):
     def test_Todo_by_id(self) -> None:
         """Test creation and findability of Todos."""
         process_unsaved = Process(None)
-        todo = Todo(None, process_unsaved, False, self.day1)
+        todo = Todo(None, process_unsaved, False, self.date1)
         with self.assertRaises(NotFoundException):
             todo.save(self.db_conn)
         process_unsaved.save(self.db_conn)
@@ -40,32 +37,32 @@ class TestsWithDB(TestCaseWithDB):
 
     def test_Todo_by_date(self) -> None:
         """Test findability of Todos by date."""
-        t1 = Todo(None, self.proc, False, self.day1)
+        t1 = Todo(None, self.proc, False, self.date1)
         t1.save(self.db_conn)
-        t2 = Todo(None, self.proc, False, self.day1)
+        t2 = Todo(None, self.proc, False, self.date1)
         t2.save(self.db_conn)
-        self.assertEqual(Todo.by_date(self.db_conn, self.day1.date), [t1, t2])
-        self.assertEqual(Todo.by_date(self.db_conn, self.day2.date), [])
+        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 self.cond1.id_ is not None
-        assert self.cond2.id_ is not None
+        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.day1)
+        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_fulfills(self.db_conn, [self.cond1.id_])
-        todo = Todo(None, self.proc, False, self.day1)
+        todo = Todo(None, self.proc, False, self.date1)
         self.assertEqual(todo.fulfills, [self.cond1])
         todo.set_fulfills(self.db_conn, [self.cond2.id_])
         self.assertEqual(todo.fulfills, [self.cond2])
         self.assertEqual(self.proc.fulfills, [self.cond1])
         self.proc.set_undoes(self.db_conn, [self.cond1.id_])
-        todo = Todo(None, self.proc, False, self.day1)
+        todo = Todo(None, self.proc, False, self.date1)
         self.assertEqual(todo.undoes, [self.cond1])
         todo.set_undoes(self.db_conn, [self.cond2.id_])
         self.assertEqual(todo.undoes, [self.cond2])
@@ -73,9 +70,9 @@ class TestsWithDB(TestCaseWithDB):
 
     def test_Todo_on_conditions(self) -> None:
         """Test effect of Todos on Conditions."""
-        assert self.cond1.id_ is not None
-        assert self.cond2.id_ is not None
-        todo = Todo(None, self.proc, False, self.day1)
+        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_fulfills(self.db_conn, [self.cond1.id_])
         todo.set_undoes(self.db_conn, [self.cond2.id_])
@@ -88,44 +85,42 @@ class TestsWithDB(TestCaseWithDB):
 
     def test_Todo_enablers_disablers(self) -> None:
         """Test Todo.enablers_for_at/disablers_for_at."""
-        assert self.cond1.id_ is not None
-        assert self.cond2.id_ is not None
-        todo1 = Todo(None, self.proc, False, self.day1)
+        assert isinstance(self.cond1.id_, int)
+        assert isinstance(self.cond2.id_, int)
+        todo1 = Todo(None, self.proc, False, self.date1)
         todo1.save(self.db_conn)
         todo1.set_fulfills(self.db_conn, [self.cond1.id_])
         todo1.set_undoes(self.db_conn, [self.cond2.id_])
         todo1.save(self.db_conn)
-        todo2 = Todo(None, self.proc, False, self.day1)
+        todo2 = Todo(None, self.proc, False, self.date1)
         todo2.save(self.db_conn)
         todo2.set_fulfills(self.db_conn, [self.cond2.id_])
         todo2.save(self.db_conn)
-        todo3 = Todo(None, self.proc, False, self.day2)
+        todo3 = Todo(None, self.proc, False, self.date2)
         todo3.save(self.db_conn)
         todo3.set_fulfills(self.db_conn, [self.cond2.id_])
         todo3.save(self.db_conn)
-        date1 = self.day1.date
-        date2 = self.day2.date
-        enablers = Todo.enablers_for_at(self.db_conn, self.cond1, date1)
+        enablers = Todo.enablers_for_at(self.db_conn, self.cond1, self.date1)
         self.assertEqual(enablers, [todo1])
-        enablers = Todo.enablers_for_at(self.db_conn, self.cond1, date2)
+        enablers = Todo.enablers_for_at(self.db_conn, self.cond1, self.date2)
         self.assertEqual(enablers, [])
-        disablers = Todo.disablers_for_at(self.db_conn, self.cond1, date1)
+        disablers = Todo.disablers_for_at(self.db_conn, self.cond1, self.date1)
         self.assertEqual(disablers, [])
-        disablers = Todo.disablers_for_at(self.db_conn, self.cond1, date2)
+        disablers = Todo.disablers_for_at(self.db_conn, self.cond1, self.date2)
         self.assertEqual(disablers, [])
-        enablers = Todo.enablers_for_at(self.db_conn, self.cond2, date1)
+        enablers = Todo.enablers_for_at(self.db_conn, self.cond2, self.date1)
         self.assertEqual(enablers, [todo2])
-        enablers = Todo.enablers_for_at(self.db_conn, self.cond2, date2)
+        enablers = Todo.enablers_for_at(self.db_conn, self.cond2, self.date2)
         self.assertEqual(enablers, [todo3])
-        disablers = Todo.disablers_for_at(self.db_conn, self.cond2, date1)
+        disablers = Todo.disablers_for_at(self.db_conn, self.cond2, self.date1)
         self.assertEqual(disablers, [todo1])
-        disablers = Todo.disablers_for_at(self.db_conn, self.cond2, date2)
+        disablers = Todo.disablers_for_at(self.db_conn, self.cond2, self.date2)
         self.assertEqual(disablers, [])
 
     def test_Todo_children(self) -> None:
         """Test Todo.children relations."""
-        todo_1 = Todo(None, self.proc, False, self.day1)
-        todo_2 = Todo(None, self.proc, False, self.day1)
+        todo_1 = Todo(None, self.proc, False, self.date1)
+        todo_2 = Todo(None, self.proc, False, self.date1)
         with self.assertRaises(HandledException):
             todo_1.add_child(todo_2)
         todo_1.save(self.db_conn)
@@ -134,6 +129,7 @@ class TestsWithDB(TestCaseWithDB):
         todo_2.save(self.db_conn)
         todo_1.add_child(todo_2)
         todo_1.save(self.db_conn)
+        assert isinstance(todo_1.id_, int)
         todo_retrieved = Todo.by_id(self.db_conn, todo_1.id_)
         self.assertEqual(todo_retrieved.children, [todo_2])
         with self.assertRaises(BadFormatException):
@@ -141,10 +137,10 @@ class TestsWithDB(TestCaseWithDB):
 
     def test_Todo_conditioning(self) -> None:
         """Test Todo.doability conditions."""
-        assert self.cond1.id_ is not None
-        todo_1 = Todo(None, self.proc, False, self.day1)
+        assert isinstance(self.cond1.id_, int)
+        todo_1 = Todo(None, self.proc, False, self.date1)
         todo_1.save(self.db_conn)
-        todo_2 = Todo(None, self.proc, False, self.day1)
+        todo_2 = Todo(None, self.proc, False, self.date1)
         todo_2.save(self.db_conn)
         todo_2.add_child(todo_1)
         with self.assertRaises(BadFormatException):
@@ -160,12 +156,12 @@ 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.day1)
+        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.day1.date)[0]
+        retrieved_todo = Todo.by_date(self.db_conn, self.date1)[0]
         retrieved_todo.is_done = False
         self.assertEqual(todo.is_done, False)