31 lines
		
	
	
		
			815 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			815 B
		
	
	
	
		
			Python
		
	
	
	
	
	
"""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))
 |