-
-
Notifications
You must be signed in to change notification settings - Fork 813
Closed
Labels
Description
Seeing this test failure on #798:
_______________________ test_auth_token _______________________
app_client = <tests.fixtures.TestClient object at 0x11285c910>
def test_auth_token(app_client):
"The /-/auth-token endpoint sets the correct cookie"
assert app_client.ds._root_token is not None
path = "/-/auth-token?token={}".format(app_client.ds._root_token)
response = app_client.get(path, allow_redirects=False,)
assert 302 == response.status
assert "/" == response.headers["Location"]
> assert {"id": "root"} == app_client.ds.unsign(response.cookies["ds_actor"], "actor")
E KeyError: 'ds_actor'
datasette/tests/test_auth.py:12: KeyError
It looks like that's happening because the ASGI middleware is adding another set-cookie header - but those two set-cookie headers are combined into one when the TestResponse is constructed:
Lines 113 to 127 in 0c064c5
| assert start["type"] == "http.response.start" | |
| headers = dict( | |
| [(k.decode("utf8"), v.decode("utf8")) for k, v in start["headers"]] | |
| ) | |
| status = start["status"] | |
| # Now loop until we run out of response.body | |
| body = b"" | |
| while True: | |
| message = await instance.receive_output(2) | |
| messages.append(message) | |
| assert message["type"] == "http.response.body" | |
| body += message["body"] | |
| if not message.get("more_body"): | |
| break | |
| response = TestResponse(status, headers, body) |
Reactions are currently unavailable