home · contact · privacy
Refactor .all() tests.
authorChristian Heller <c.heller@plomlompom.de>
Tue, 18 Jun 2024 01:46:20 +0000 (03:46 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Tue, 18 Jun 2024 01:46:20 +0000 (03:46 +0200)
tests/conditions.py
tests/days.py
tests/processes.py
tests/utils.py

index fb55e008bdb316669d1fb8abc56304413cd669d2..562dcd9ae01c5c681f11497b7db51247d4e6272c 100644 (file)
@@ -29,10 +29,6 @@ class TestsWithDB(TestCaseWithDB):
         """Test .by_id(), including creation."""
         self.check_by_id()
 
-    def test_Condition_all(self) -> None:
-        """Test .all()."""
-        self.check_all()
-
     def test_Condition_versioned_attributes_singularity(self) -> None:
         """Test behavior of VersionedAttributes on saving (with .title)."""
         self.check_versioned_singularity()
index 6a8773663032310d3b5d8cf73fcae92a27ec6cbe..1972dbdac162625db11a821ab5b0df16e422690e 100644 (file)
@@ -60,7 +60,12 @@ class TestsWithDB(TestCaseWithDB):
     def test_Day_by_date_range_filled(self) -> None:
         """Test Day.by_date_range_filled."""
         date1, date2, date3 = self.default_ids
-        day1, day2, day3 = self.check_all()
+        day1 = Day(date1)
+        day2 = Day(date2)
+        day3 = Day(date3)
+        day1.save(self.db_conn)
+        day2.save(self.db_conn)
+        day3.save(self.db_conn)
         # check date range is a closed interval
         self.assertEqual(Day.by_date_range_filled(self.db_conn, date1, date3),
                          [day1, day2, day3])
index 70090d15c5f9e8e49c5f64187f750d29d9d2d638..f495fd54714745f1f4721d92441cd922dd016132 100644 (file)
@@ -186,10 +186,6 @@ class TestsWithDB(TestCaseWithDB):
         """Test .by_id(), including creation"""
         self.check_by_id()
 
-    def test_Process_all(self) -> None:
-        """Test .all()."""
-        self.check_all()
-
     def test_Process_versioned_attributes_singularity(self) -> None:
         """Test behavior of VersionedAttributes on saving (with .title)."""
         self.check_versioned_singularity()
index a4f29ff45263cc2716f2299fa3f6d36d973d03a6..d8bd247bd8391682e5f7577c56f5e77d86216e9f 100644 (file)
@@ -131,7 +131,7 @@ class TestCaseWithDB(TestCase):
         self.check_storage([obj])
 
     def test_from_table_row(self) -> None:
-        """Test .from_table_row() properly reads in class from DB."""
+        """Test .from_table_row() properly reads in class directly from DB."""
         if not hasattr(self, 'checked_class'):
             return
         id_ = self.default_ids[0]
@@ -174,25 +174,26 @@ class TestCaseWithDB(TestCase):
             attr = getattr(retrieved, attr_name)
             self.assertEqual(sorted(attr.history.values()), vals)
 
-    def check_all(self) -> tuple[Any, Any, Any]:
-        """Test .all()."""
-        # pylint: disable=not-callable
-        item1 = self.checked_class(self.default_ids[0])
-        item2 = self.checked_class(self.default_ids[1])
-        item3 = self.checked_class(self.default_ids[2])
-        # check pre-save .all() returns empty list
+    def test_all(self) -> None:
+        """Test .all() and its relation to cache and savings."""
+        if not hasattr(self, 'checked_class'):
+            return
+        id_1, id_2, id_3 = self.default_ids
+        item1 = self.checked_class(id_1, **self.default_init_kwargs)
+        item2 = self.checked_class(id_2, **self.default_init_kwargs)
+        item3 = self.checked_class(id_3, **self.default_init_kwargs)
+        # check .all() returns empty list on un-cached items
         self.assertEqual(self.checked_class.all(self.db_conn), [])
-        # check that all() shows all saved, but no unsaved items
-        item1.save(self.db_conn)
+        # check that all() shows only cached/saved items
+        item1.cache()
         item3.save(self.db_conn)
         self.assertEqual(sorted(self.checked_class.all(self.db_conn)),
                          sorted([item1, item3]))
         item2.save(self.db_conn)
         self.assertEqual(sorted(self.checked_class.all(self.db_conn)),
                          sorted([item1, item2, item3]))
-        return item1, item2, item3
 
-    def test_singularity(self)-> None:
+    def test_singularity(self) -> None:
         """Test pointers made for single object keep pointing to it."""
         if not hasattr(self, 'checked_class'):
             return
@@ -201,6 +202,7 @@ class TestCaseWithDB(TestCase):
         obj.save(self.db_conn)
         attr_name = self.checked_class.to_save[-1]
         attr = getattr(obj, attr_name)
+        new_attr: str | int | float | bool
         if isinstance(attr, (int, float)):
             new_attr = attr + 1
         elif isinstance(attr, str):