"""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."""
"""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()