From 049860fce5f6a1a67d3f35c54db852b6734329af Mon Sep 17 00:00:00 2001 From: Maxime Alves LIRMM Date: Mon, 22 Nov 2021 20:06:12 +0100 Subject: [PATCH] [lib.domain] gen_router_routes yields router module also --- halfapi/lib/domain.py | 1 + halfapi/lib/routes.py | 4 ++-- tests/test_dummy_project_router.py | 2 +- tests/test_lib_domain.py | 4 +++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/halfapi/lib/domain.py b/halfapi/lib/domain.py index 14b70ac..f1cb077 100644 --- a/halfapi/lib/domain.py +++ b/halfapi/lib/domain.py @@ -194,6 +194,7 @@ def gen_router_routes(m_router: ModuleType, path: List[str]) -> \ continue yield ('/'.join(filter(lambda x: len(x) > 0, path)), verb, + m_router, *gen_routes(m_router, verb, path, params[verb]) ) diff --git a/halfapi/lib/routes.py b/halfapi/lib/routes.py index d598033..6b650bd 100644 --- a/halfapi/lib/routes.py +++ b/halfapi/lib/routes.py @@ -122,7 +122,7 @@ def gen_domain_routes(m_domain: ModuleType): Returns: Generator(Route) """ - for path, verb, fct, params in gen_router_routes(m_domain, []): + for path, verb, m_router, fct, params in gen_router_routes(m_domain, []): yield ( Route(f'/{path}', route_acl_decorator( @@ -176,7 +176,7 @@ def api_routes(m_dom: ModuleType) -> Tuple[Dict, Dict]: return l_params d_res = {} - for path, verb, _, params in gen_router_routes(m_dom, []): + for path, verb, _, _, params in gen_router_routes(m_dom, []): if path not in d_res: d_res[path] = {} d_res[path][verb] = str_acl(params) diff --git a/tests/test_dummy_project_router.py b/tests/test_dummy_project_router.py index d6f4416..eb4909f 100644 --- a/tests/test_dummy_project_router.py +++ b/tests/test_dummy_project_router.py @@ -17,7 +17,7 @@ def test_get_config_route(dummy_project, application_domain, routers): def test_get_route(dummy_project, application_domain, routers): c = TestClient(application_domain) path = verb = params = None - for path, verb, _, params in gen_router_routes(routers, []): + for path, verb, _, _, params in gen_router_routes(routers, []): if len(params): route_path = '/dummy_domain/{}'.format(path) try: diff --git a/tests/test_lib_domain.py b/tests/test_lib_domain.py index 441ba0d..061b5bb 100644 --- a/tests/test_lib_domain.py +++ b/tests/test_lib_domain.py @@ -7,11 +7,13 @@ from types import FunctionType def test_gen_router_routes(): from .dummy_domain import routers - for path, verb, fct, params in gen_router_routes(routers, ['dummy_domain']): + for path, verb, m_router, fct, params in gen_router_routes(routers, ['dummy_domain']): assert isinstance(path, str) assert verb in VERBS assert len(params) > 0 assert hasattr(fct, '__call__') + assert len(m_router.__file__) > 0 + def test_gen_routes(): from .dummy_domain.routers.abc.alphabet import TEST_uuid