datasette/tests/test_messages.py

33 wiersze
1.1 KiB
Python

from .utils import cookie_was_deleted
2020-06-02 21:08:12 +00:00
import pytest
@pytest.mark.asyncio
2020-06-02 21:08:12 +00:00
@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}")
2020-06-02 21:08:12 +00:00
signed = response.cookies["ds_messages"]
decoded = ds_client.ds.unsign(signed, "messages")
2020-06-02 21:08:12 +00:00
assert expected == decoded
@pytest.mark.asyncio
async def test_messages_are_displayed_and_cleared(ds_client):
2020-06-02 21:08:12 +00:00
# First set the message cookie
set_msg_response = await ds_client.get(
"/fixtures.message?sql=select+1&add_msg=xmessagex"
)
2020-06-02 21:08:12 +00:00
# Now access a page that displays messages
response = await ds_client.get("/", cookies=set_msg_response.cookies)
2020-06-02 21:08:12 +00:00
# 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")