31 lines
		
	
	
		
			735 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			735 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| """flow model tests"""
 | |
| from typing import Callable, Type
 | |
| 
 | |
| from django.forms import ModelForm
 | |
| from django.test import TestCase
 | |
| 
 | |
| from passbook.lib.utils.reflection import all_subclasses
 | |
| from passbook.policies.models import Policy
 | |
| 
 | |
| 
 | |
| class TestPolicyProperties(TestCase):
 | |
|     """Generic model properties tests"""
 | |
| 
 | |
| 
 | |
| def policy_tester_factory(model: Type[Policy]) -> Callable:
 | |
|     """Test a form"""
 | |
| 
 | |
|     def tester(self: TestPolicyProperties):
 | |
|         model_inst = model()
 | |
|         self.assertTrue(issubclass(model_inst.form, ModelForm))
 | |
| 
 | |
|     return tester
 | |
| 
 | |
| 
 | |
| for policy_type in all_subclasses(Policy):
 | |
|     setattr(
 | |
|         TestPolicyProperties,
 | |
|         f"test_policy_{policy_type.__name__}",
 | |
|         policy_tester_factory(policy_type),
 | |
|     )
 | 
