From: Christian Heller <c.heller@plomlompom.de>
Date: Tue, 18 Jun 2024 00:05:43 +0000 (+0200)
Subject: Refactor singularity tests.
X-Git-Url: https://plomlompom.com/repos/%22https:/validator.w3.org/static/templates?a=commitdiff_plain;h=02aa60b59cea2c0401efd785f3bb5d06aec7bf4d;p=taskplom
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)."""