"""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."""
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)
"""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()
c = Condition(None)
proc = Process(None)
+ proc.save(self.db_conn)
todo = Todo(None, proc, False, '2024-01-01')
for depender in (proc, todo):
assert hasattr(depender, 'save')