home · contact · privacy
Refactor singularity tests.
authorChristian Heller <c.heller@plomlompom.de>
Tue, 18 Jun 2024 00:05:43 +0000 (02:05 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Tue, 18 Jun 2024 00:05:43 +0000 (02:05 +0200)
tests/conditions.py
tests/days.py
tests/processes.py
tests/todos.py
tests/utils.py

index afb1841e9a6c230a64f66c9144169999e70da372..fb55e008bdb316669d1fb8abc56304413cd669d2 100644 (file)
@@ -33,10 +33,6 @@ class TestsWithDB(TestCaseWithDB):
         """Test .all()."""
         self.check_all()
 
-    def test_Condition_singularity(self) -> None:
-        """Test pointers made for single object keep pointing to it."""
-        self.check_singularity('is_active', True)
-
     def test_Condition_versioned_attributes_singularity(self) -> None:
         """Test behavior of VersionedAttributes on saving (with .title)."""
         self.check_versioned_singularity()
index e4c9de53b0576f685a968a4b7682749c5fe1a7f5..6a8773663032310d3b5d8cf73fcae92a27ec6cbe 100644 (file)
@@ -94,10 +94,6 @@ class TestsWithDB(TestCaseWithDB):
         """Test .remove() effects on DB and cache."""
         self.check_remove()
 
-    def test_Day_singularity(self) -> None:
-        """Test pointers made for single object keep pointing to it."""
-        self.check_singularity('day_comment', 'boo')
-
 
 class TestsWithServer(TestCaseWithServer):
     """Tests against our HTTP server/handler (and database)."""
index d54fe84bb1041f1084fd341803576c99457e1877..70090d15c5f9e8e49c5f64187f750d29d9d2d638 100644 (file)
@@ -190,10 +190,6 @@ class TestsWithDB(TestCaseWithDB):
         """Test .all()."""
         self.check_all()
 
-    def test_Process_singularity(self) -> None:
-        """Test pointers made for single object keep pointing to it."""
-        self.check_singularity('conditions', [Condition(None)])
-
     def test_Process_versioned_attributes_singularity(self) -> None:
         """Test behavior of VersionedAttributes on saving (with .title)."""
         self.check_versioned_singularity()
index b73f5d7fcb7b0a2c53256593e8e9867e86d2b89e..56aaf48ccc1faa917b23fd89443678efa049c396 100644 (file)
@@ -202,10 +202,6 @@ class TestsWithDB(TestCaseWithDB, TestCaseSansDB):
         self.assertEqual(len(todo_3.children), 1)
         self.assertEqual(todo_3.children[0].process, proc4)
 
-    def test_Todo_singularity(self) -> None:
-        """Test pointers made for single object keep pointing to it."""
-        self.check_singularity('is_done', True, self.proc, False, self.date1)
-
     def test_Todo_remove(self) -> None:
         """Test removal."""
         todo_1 = Todo(None, self.proc, False, self.date1)
index f76fe33c93fc65d68aa07b7ca04aa0b98c762072..a4f29ff45263cc2716f2299fa3f6d36d973d03a6 100644 (file)
@@ -192,16 +192,24 @@ class TestCaseWithDB(TestCase):
                          sorted([item1, item2, item3]))
         return item1, item2, item3
 
-    def check_singularity(self, defaulting_field: str,
-                          non_default_value: Any, *args: Any) -> None:
+    def test_singularity(self)-> None:
         """Test pointers made for single object keep pointing to it."""
+        if not hasattr(self, 'checked_class'):
+            return
         id1 = self.default_ids[0]
-        obj = self.checked_class(id1, *args)  # pylint: disable=not-callable
+        obj = self.checked_class(id1, **self.default_init_kwargs)
         obj.save(self.db_conn)
-        setattr(obj, defaulting_field, non_default_value)
+        attr_name = self.checked_class.to_save[-1]
+        attr = getattr(obj, attr_name)
+        if isinstance(attr, (int, float)):
+            new_attr = attr + 1
+        elif isinstance(attr, str):
+            new_attr = attr + '_'
+        elif isinstance(attr, bool):
+            new_attr = not attr
+        setattr(obj, attr_name, new_attr)
         retrieved = self.checked_class.by_id(self.db_conn, id1)
-        self.assertEqual(non_default_value,
-                         getattr(retrieved, defaulting_field))
+        self.assertEqual(new_attr, getattr(retrieved, attr_name))
 
     def check_versioned_singularity(self) -> None:
         """Test singularity of VersionedAttributes on saving (with .title)."""