Coverage for /usr/local/lib/python3.12/site-packages/prefect/server/api/templates.py: 64%
14 statements
« prev ^ index » next coverage.py v7.10.6, created at 2025-12-05 11:21 +0000
« prev ^ index » next coverage.py v7.10.6, created at 2025-12-05 11:21 +0000
1import orjson 1a
2from fastapi import Body, Response 1a
3from jinja2.exceptions import TemplateSyntaxError 1a
5from prefect.server.utilities.server import PrefectRouter 1a
6from prefect.server.utilities.user_templates import ( 1a
7 TemplateSecurityError,
8 validate_user_template,
9)
11router: PrefectRouter = PrefectRouter(tags=["Automations"]) 1a
14# deprecated and can be removed after the ui removes its dependency on it
15# use /templates/validate instead
16@router.post( 1a
17 "/automations/templates/validate",
18 response_class=Response,
19)
20@router.post( 1a
21 "/templates/validate",
22 response_class=Response,
23)
24def validate_template(template: str = Body(default="")) -> Response: 1a
25 try:
26 validate_user_template(template)
27 return Response(content="", status_code=204)
28 except (TemplateSyntaxError, TemplateSecurityError) as e:
29 return Response(
30 status_code=422,
31 media_type="application/json",
32 content=orjson.dumps(
33 {
34 "error": {
35 "line": e.lineno,
36 "message": e.message,
37 "source": template,
38 },
39 }
40 ),
41 )