mirror of
https://github.com/simonw/datasette.git
synced 2026-10-24 02:07:00 +02:00
Make missing :actor_X key available in KeyError
This commit is contained in:
parent
c435a80030
commit
a8e13cc489
2 changed files with 25 additions and 1 deletions
|
|
@ -13,7 +13,7 @@ def header(key, request):
|
|||
|
||||
def actor(key, request):
|
||||
if request.actor is None:
|
||||
raise KeyError
|
||||
raise KeyError(key)
|
||||
return request.actor[key]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@ import pytest
|
|||
from asgiref.sync import async_to_sync
|
||||
from bs4 import BeautifulSoup as Soup
|
||||
|
||||
from datasette.utils.asgi import Request
|
||||
from datasette.views.database import MagicParameters
|
||||
|
||||
from .fixtures import make_app_client
|
||||
|
||||
|
||||
|
|
@ -343,6 +346,27 @@ def magic_parameters_client():
|
|||
yield client
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"actor,key",
|
||||
[
|
||||
(None, "id"),
|
||||
(None, "name"),
|
||||
({}, "id"),
|
||||
({"id": "root"}, "name"),
|
||||
],
|
||||
)
|
||||
@pytest.mark.asyncio
|
||||
async def test_magic_actor_missing_key(bare_ds, actor, key):
|
||||
request = Request.fake("/")
|
||||
request.scope["actor"] = actor
|
||||
parameters = MagicParameters(f"select :_actor_{key}", {}, request, bare_ds)
|
||||
|
||||
with pytest.raises(KeyError) as exc_info:
|
||||
await parameters.execute_params()
|
||||
|
||||
assert exc_info.value.args == (key,)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"magic_parameter,expected_re",
|
||||
[
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue