flows/tests: add tests to ensure flows in documentation are valid
This commit is contained in:
parent
cddc9bc1b7
commit
349e536d14
|
@ -0,0 +1,31 @@
|
||||||
|
"""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)
|
||||||
|
)
|
Reference in New Issue