X-Git-Url: https://plomlompom.com/repos/feed.xml?a=blobdiff_plain;f=tests%2Futils.py;fp=tests%2Futils.py;h=a4f29ff45263cc2716f2299fa3f6d36d973d03a6;hb=02aa60b59cea2c0401efd785f3bb5d06aec7bf4d;hp=f76fe33c93fc65d68aa07b7ca04aa0b98c762072;hpb=e3bfd84f9061d5f03ec5f5764f75e4137505ea45;p=plomtask 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)."""