mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
* Refs #2111, closes #2110 * New Context dataclass/subclass mechanism, refs #2127 * Define QueryContext and extract get_tables() method, refs #2127 * Fix OPTIONS bug by porting DaatbaseView to be a View subclass * Expose async_view_for_class.view_class for test_routes test * Error/truncated aruments for renderers, closes #2130
32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
from .utils import cookie_was_deleted
|
|
import pytest
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
@pytest.mark.parametrize(
|
|
"qs,expected",
|
|
[
|
|
("add_msg=added-message", [["added-message", 1]]),
|
|
("add_msg=added-warning&type=WARNING", [["added-warning", 2]]),
|
|
("add_msg=added-error&type=ERROR", [["added-error", 3]]),
|
|
],
|
|
)
|
|
async def test_add_message_sets_cookie(ds_client, qs, expected):
|
|
response = await ds_client.get(f"/fixtures.message?sql=select+1&{qs}")
|
|
signed = response.cookies["ds_messages"]
|
|
decoded = ds_client.ds.unsign(signed, "messages")
|
|
assert expected == decoded
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_messages_are_displayed_and_cleared(ds_client):
|
|
# First set the message cookie
|
|
set_msg_response = await ds_client.get(
|
|
"/fixtures.message?sql=select+1&add_msg=xmessagex"
|
|
)
|
|
# Now access a page that displays messages
|
|
response = await ds_client.get("/", cookies=set_msg_response.cookies)
|
|
# Messages should be in that HTML
|
|
assert "xmessagex" in response.text
|
|
# Cookie should have been set that clears messages
|
|
assert cookie_was_deleted(response, "ds_messages")
|