@@ -35,7 +35,7 @@ def __init__(self, data: dict[str, Any], *, response: Response) -> None:
3535
3636
3737@pytest .fixture
38- def jinja_app () -> FastAPI :
38+ def jinja_app () -> FastAPI : # noqa: C901
3939 app = FastAPI ()
4040
4141 jinja = Jinja (Jinja2Templates ("tests/templates" ))
@@ -88,6 +88,7 @@ def header_with_no_default() -> User:
8888 return billy
8989
9090 @app .get ("/error" )
91+ @app .get ("/error/{kind}" )
9192 @jinja .hx (
9293 TemplateHeader ("X-Component" , {}), # No rendering if there's no exception.
9394 error_template = TemplateHeader (
@@ -98,20 +99,29 @@ def header_with_no_default() -> User:
9899 ),
99100 no_data = True ,
100101 )
101- def error (response : Response ) -> None :
102+ def error (response : Response , kind : str | None = None ) -> None :
103+ if kind :
104+ # Unhandled error type to see if we get HTTP 500
105+ raise ValueError (kind )
106+
102107 raise RenderedError ({"a" : 1 , "b" : 2 }, response = response )
103108
104109 @app .get ("/error-page" )
110+ @app .get ("/error-page/{kind}" )
105111 @jinja .page (
106112 TemplateHeader ("X-Component" , {}), # No rendering if there's no exception.
107113 error_template = TemplateHeader (
108114 "X-Error-Component" ,
109115 {},
110116 default = "hello-world.jinja" ,
111- error = (RenderedError , TypeError , ValueError ), # Test error tuple
117+ error = (RenderedError , TypeError , SyntaxError ), # Test error tuple
112118 ),
113119 )
114- def error_page (response : Response ) -> None :
120+ def error_page (response : Response , kind : str | None = None ) -> None :
121+ if kind :
122+ # Unhandled error type to see if we get HTTP 500
123+ raise ValueError (kind )
124+
115125 raise RenderedError ({"a" : 1 , "b" : 2 }, response = response )
116126
117127 @app .get ("/global-no-data" )
@@ -194,8 +204,10 @@ def jinja_client(jinja_app: FastAPI) -> TestClient:
194204 ("/htmx-only" , {"HX-Request" : "false" }, 400 , "" , {}),
195205 # hx() error rendering
196206 ("/error" , {"HX-Request" : "true" }, 456 , "Hello World!" , {}),
207+ ("/error/value-error" , {"HX-Request" : "true" }, 500 , "" , {}),
197208 # page() error rendering
198209 ("/error-page" , None , 456 , "Hello World!" , {}),
210+ ("/error-page/value-error" , None , 500 , "None" , {}),
199211 # Globally disabled data responses
200212 ("/global-no-data" , None , 400 , "" , {}),
201213 ),
0 commit comments