From: Christian Heller Date: Tue, 18 Jun 2024 00:05:43 +0000 (+0200) Subject: Refactor singularity tests. X-Git-Url: https://plomlompom.com/repos/%7B%7Bdb.prefix%7D%7D/add_task?a=commitdiff_plain;h=02aa60b59cea2c0401efd785f3bb5d06aec7bf4d;p=plomtask Refactor singularity tests. --- diff --git a/tests/conditions.py b/tests/conditions.py index afb1841..fb55e00 100644 --- a/tests/conditions.py +++ b/tests/conditions.py @@ -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() diff --git a/tests/days.py b/tests/days.py index e4c9de5..6a87736 100644 --- a/tests/days.py +++ b/tests/days.py @@ -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).""" diff --git a/tests/processes.py b/tests/processes.py index d54fe84..70090d1 100644 --- a/tests/processes.py +++ b/tests/processes.py @@ -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() diff --git a/tests/todos.py b/tests/todos.py index b73f5d7..56aaf48 100644 --- a/tests/todos.py +++ b/tests/todos.py @@ -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) diff --git a/tests/utils.py b/tests/utils.py index f76fe33..a4f29ff 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -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)."""