policies: change .form() and .serializer() to properties, add tests
This commit is contained in:
30
passbook/lib/tests.py
Normal file
30
passbook/lib/tests.py
Normal file
@ -0,0 +1,30 @@
|
||||
"""base model tests"""
|
||||
from typing import Callable, Type
|
||||
|
||||
from django.test import TestCase
|
||||
from rest_framework.serializers import BaseSerializer
|
||||
|
||||
from passbook.flows.models import Stage
|
||||
from passbook.lib.models import SerializerModel
|
||||
from passbook.lib.utils.reflection import all_subclasses
|
||||
|
||||
|
||||
class TestModels(TestCase):
|
||||
"""Generic model properties tests"""
|
||||
|
||||
|
||||
def model_tester_factory(test_model: Type[Stage]) -> Callable:
|
||||
"""Test a form"""
|
||||
|
||||
def tester(self: TestModels):
|
||||
model_inst = test_model()
|
||||
try:
|
||||
self.assertTrue(issubclass(model_inst.serializer, BaseSerializer))
|
||||
except NotImplementedError:
|
||||
pass
|
||||
|
||||
return tester
|
||||
|
||||
|
||||
for model in all_subclasses(SerializerModel):
|
||||
setattr(TestModels, f"test_model_{model.__name__}", model_tester_factory(model))
|
||||
Reference in New Issue
Block a user