def http_exception(self, request: Request, exc: HTTPException) -> Response:
if exc.status_code in {204, 304}:
- return Response(b"", status_code=exc.status_code)
+ return Response(status_code=exc.status_code)
return PlainTextResponse(exc.detail, status_code=exc.status_code)
raise HTTPException(status_code=406)
+def no_content(request):
+ raise HTTPException(status_code=204)
+
+
def not_modified(request):
raise HTTPException(status_code=304)
routes=[
Route("/runtime_error", endpoint=raise_runtime_error),
Route("/not_acceptable", endpoint=not_acceptable),
+ Route("/no_content", endpoint=no_content),
Route("/not_modified", endpoint=not_modified),
Route("/handled_exc_after_response", endpoint=HandledExcAfterResponse()),
WebSocketRoute("/runtime_error", endpoint=raise_runtime_error),
assert response.text == "Not Acceptable"
+def test_no_content(client):
+ response = client.get("/no_content")
+ assert response.status_code == 204
+ assert "content-length" not in response.headers
+
+
def test_not_modified(client):
response = client.get("/not_modified")
assert response.status_code == 304