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