This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
authentik/passbook/flows/tests/test_transfer_docs.py

32 lines
918 B
Python
Raw Normal View History

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