diff --git a/starlette/responses.py b/starlette/responses.py index 26d730540..577d1bb04 100644 --- a/starlette/responses.py +++ b/starlette/responses.py @@ -174,6 +174,16 @@ class PlainTextResponse(Response): class JSONResponse(Response): media_type = "application/json" + def __init__( + self, + content: typing.Any, + status_code: int = 200, + headers: dict = None, + media_type: str = None, + background: BackgroundTask = None, + ) -> None: + super().__init__(content, status_code, headers, media_type, background) + def render(self, content: typing.Any) -> bytes: return json.dumps( content, diff --git a/tests/test_responses.py b/tests/test_responses.py index e2337bdca..38aea5761 100644 --- a/tests/test_responses.py +++ b/tests/test_responses.py @@ -44,6 +44,7 @@ async def app(scope, receive, send): client = test_client_factory(app) response = client.get("/") assert response.json() is None + assert response.content == b"null" def test_redirect_response(test_client_factory): @@ -330,7 +331,9 @@ def test_empty_response(test_client_factory): app = Response() client: TestClient = test_client_factory(app) response = client.get("/") + assert response.content == b"" assert response.headers["content-length"] == "0" + assert "content-type" not in response.headers def test_empty_204_response(test_client_factory):