32 lines
771 B
Python
32 lines
771 B
Python
"""flow model tests"""
|
|
from typing import Callable, Type
|
|
|
|
from django.forms import ModelForm
|
|
from django.test import TestCase
|
|
|
|
from passbook.flows.models import Stage
|
|
from passbook.flows.stage import StageView
|
|
|
|
|
|
class TestStageProperties(TestCase):
|
|
"""Generic model properties tests"""
|
|
|
|
|
|
def stage_tester_factory(model: Type[Stage]) -> Callable:
|
|
"""Test a form"""
|
|
|
|
def tester(self: TestStageProperties):
|
|
model_inst = model()
|
|
self.assertTrue(issubclass(model_inst.form, ModelForm))
|
|
self.assertTrue(issubclass(model_inst.type, StageView))
|
|
|
|
return tester
|
|
|
|
|
|
for stage_type in Stage.__subclasses__():
|
|
setattr(
|
|
TestStageProperties,
|
|
f"test_stage_{stage_type.__name__}",
|
|
stage_tester_factory(stage_type),
|
|
)
|