Coverage for tests/test_operations_signatures.py: 100%
17 statements
« prev ^ index » next coverage.py v7.6.1, created at 2025-12-04 08:29 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2025-12-04 08:29 +0000
1import inspect 1hijklmn
3from fastapi import APIRouter, FastAPI 1hijklmn
5method_names = ["get", "put", "post", "delete", "options", "head", "patch", "trace"] 1hijklmn
8def test_signatures_consistency(): 1hijklmn
9 base_sig = inspect.signature(APIRouter.get) 1abcdefg
10 for method_name in method_names: 1abcdefg
11 router_method = getattr(APIRouter, method_name) 1abcdefg
12 app_method = getattr(FastAPI, method_name) 1abcdefg
13 router_sig = inspect.signature(router_method) 1abcdefg
14 app_sig = inspect.signature(app_method) 1abcdefg
15 param: inspect.Parameter
16 for key, param in base_sig.parameters.items(): 1abcdefg
17 router_param: inspect.Parameter = router_sig.parameters[key] 1abcdefg
18 app_param: inspect.Parameter = app_sig.parameters[key] 1abcdefg
19 assert param.annotation == router_param.annotation 1abcdefg
20 assert param.annotation == app_param.annotation 1abcdefg
21 assert param.default == router_param.default 1abcdefg
22 assert param.default == app_param.default 1abcdefg