32 lines
		
	
	
		
			918 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			918 B
		
	
	
	
		
			Python
		
	
	
	
	
	
"""test example flows in docs"""
 | 
						|
from glob import glob
 | 
						|
from pathlib import Path
 | 
						|
from typing import Callable
 | 
						|
 | 
						|
from django.test import TransactionTestCase
 | 
						|
 | 
						|
from passbook.flows.transfer.importer import FlowImporter
 | 
						|
 | 
						|
 | 
						|
class TestTransferDocs(TransactionTestCase):
 | 
						|
    """Empty class, test methods are added dynamically"""
 | 
						|
 | 
						|
 | 
						|
def generic_view_tester(file_name: str) -> Callable:
 | 
						|
    """This is used instead of subTest for better visibility"""
 | 
						|
 | 
						|
    def tester(self: TestTransferDocs):
 | 
						|
        with open(file_name, "r") as flow_json:
 | 
						|
            importer = FlowImporter(flow_json.read())
 | 
						|
        self.assertTrue(importer.validate())
 | 
						|
        self.assertTrue(importer.apply())
 | 
						|
 | 
						|
    return tester
 | 
						|
 | 
						|
 | 
						|
for flow_file in glob("docs/flow/examples/*.json"):
 | 
						|
    method_name = Path(flow_file).stem.replace("-", "_").replace(".", "_")
 | 
						|
    setattr(
 | 
						|
        TestTransferDocs, f"test_flow_{method_name}", generic_view_tester(flow_file)
 | 
						|
    )
 |