home · contact · privacy
Extend tests.
[plomtask] / tests / conditions.py
index f825ba460400be22e650608bf0ecafe51e94e990..9c95206aab63cbdd045aaedf1f415ba6779d8afa 100644 (file)
@@ -1,27 +1,29 @@
 """Test Conditions module."""
-from unittest import TestCase
-from tests.utils import TestCaseWithDB, TestCaseWithServer
+from tests.utils import TestCaseWithDB, TestCaseWithServer, TestCaseSansDB
 from plomtask.conditions import Condition
 from plomtask.processes import Process
 from plomtask.todos import Todo
 from plomtask.exceptions import HandledException
 
 
-class TestsSansDB(TestCase):
+class TestsSansDB(TestCaseSansDB):
     """Tests requiring no DB setup."""
+    checked_class = Condition
 
     def test_Condition_id_setting(self) -> None:
         """Test .id_ being set and its legal range being enforced."""
-        with self.assertRaises(HandledException):
-            Condition(0)
-        condition = Condition(5)
-        self.assertEqual(condition.id_, 5)
+        self.check_id_setting()
+
+    def test_Condition_versioned_defaults(self) -> None:
+        """Test defaults of VersionedAttributes."""
+        self.check_versioned_defaults({
+            'title': 'UNNAMED',
+            'description': ''})
 
 
 class TestsWithDB(TestCaseWithDB):
     """Tests requiring DB, but not server setup."""
     checked_class = Condition
-    default_ids = (1, 2, 3)
 
     def versioned_condition(self) -> Condition:
         """Create Condition with some VersionedAttribute values."""
@@ -47,7 +49,7 @@ class TestsWithDB(TestCaseWithDB):
 
     def test_Condition_from_table_row(self) -> None:
         """Test .from_table_row() properly reads in class from DB"""
-        self.check_from_table_row(1)
+        self.check_from_table_row()
         c = self.versioned_condition()
         c.save(self.db_conn)
         assert isinstance(c.id_, int)
@@ -72,6 +74,10 @@ class TestsWithDB(TestCaseWithDB):
         """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()
+
     def test_Condition_remove(self) -> None:
         """Test .remove() effects on DB and cache."""
         self.check_remove()