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)
|
|
)
|