flows/tests: add tests to ensure flows in documentation are valid

This commit is contained in:
Jens Langhammer 2020-09-09 17:23:07 +02:00
parent cddc9bc1b7
commit 349e536d14
1 changed files with 31 additions and 0 deletions

View File

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