mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
Use correct content-type header, refs #272
This commit is contained in:
parent
1208bcbfe8
commit
1e8419bde4
6 changed files with 12 additions and 5 deletions
|
|
@ -88,5 +88,5 @@ def json_renderer(args, data, view_name):
|
|||
content_type = "text/plain"
|
||||
else:
|
||||
body = json.dumps(data, cls=CustomJSONEncoder)
|
||||
content_type = "application/json"
|
||||
content_type = "application/json; charset=utf-8"
|
||||
return {"body": body, "status_code": status_code, "content_type": content_type}
|
||||
|
|
|
|||
|
|
@ -90,13 +90,16 @@ class AsgiView(HTTPMethodView):
|
|||
if hasattr(response, "asgi_send"):
|
||||
await response.asgi_send(send)
|
||||
else:
|
||||
headers = {}
|
||||
headers.update(response.headers)
|
||||
headers["content-type"] = response.content_type
|
||||
await send(
|
||||
{
|
||||
"type": "http.response.start",
|
||||
"status": response.status,
|
||||
"headers": [
|
||||
[key.encode("utf-8"), value.encode("utf-8")]
|
||||
for key, value in response.headers.items()
|
||||
for key, value in headers.items()
|
||||
],
|
||||
}
|
||||
)
|
||||
|
|
@ -158,7 +161,7 @@ async def asgi_send_json(send, info, status=200, headers=None):
|
|||
json.dumps(info),
|
||||
status=status,
|
||||
headers=headers,
|
||||
content_type="application/json",
|
||||
content_type="application/json; charset=utf-8",
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ class IndexView(BaseView):
|
|||
headers["Access-Control-Allow-Origin"] = "*"
|
||||
return response.HTTPResponse(
|
||||
json.dumps({db["name"]: db for db in databases}, cls=CustomJSONEncoder),
|
||||
content_type="application/json",
|
||||
content_type="application/json; charset=utf-8",
|
||||
headers=headers,
|
||||
)
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -18,7 +18,9 @@ class JsonDataView(BaseView):
|
|||
if self.ds.cors:
|
||||
headers["Access-Control-Allow-Origin"] = "*"
|
||||
return response.HTTPResponse(
|
||||
json.dumps(data), content_type="application/json", headers=headers
|
||||
json.dumps(data),
|
||||
content_type="application/json; charset=utf-8",
|
||||
headers=headers,
|
||||
)
|
||||
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import urllib
|
|||
def test_homepage(app_client):
|
||||
response = app_client.get("/.json")
|
||||
assert response.status == 200
|
||||
assert "application/json; charset=utf-8" == response.headers["content-type"]
|
||||
assert response.json.keys() == {"fixtures": 0}.keys()
|
||||
d = response.json["fixtures"]
|
||||
assert d["name"] == "fixtures"
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import urllib.parse
|
|||
def test_homepage(app_client_two_attached_databases):
|
||||
response = app_client_two_attached_databases.get("/")
|
||||
assert response.status == 200
|
||||
assert "text/html; charset=utf-8" == response.headers["content-type"]
|
||||
soup = Soup(response.body, "html.parser")
|
||||
assert "Datasette Fixtures" == soup.find("h1").text
|
||||
assert (
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue