mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
Make request available when rendering custom pages, closes #738
This commit is contained in:
parent
304e7b1d9f
commit
1b7b66c465
2 changed files with 11 additions and 1 deletions
|
|
@ -40,6 +40,7 @@ from .utils import (
|
||||||
from .utils.asgi import (
|
from .utils.asgi import (
|
||||||
AsgiLifespan,
|
AsgiLifespan,
|
||||||
NotFound,
|
NotFound,
|
||||||
|
Request,
|
||||||
Response,
|
Response,
|
||||||
asgi_static,
|
asgi_static,
|
||||||
asgi_send,
|
asgi_send,
|
||||||
|
|
@ -785,6 +786,7 @@ class DatasetteRouter(AsgiRouter):
|
||||||
"custom_status": custom_status,
|
"custom_status": custom_status,
|
||||||
"custom_redirect": custom_redirect,
|
"custom_redirect": custom_redirect,
|
||||||
},
|
},
|
||||||
|
request=Request(scope, receive),
|
||||||
view_name="page",
|
view_name="page",
|
||||||
)
|
)
|
||||||
# Pull content-type out into separate parameter
|
# Pull content-type out into separate parameter
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,10 @@ VIEW_NAME_PLUGIN = """
|
||||||
from datasette import hookimpl
|
from datasette import hookimpl
|
||||||
|
|
||||||
@hookimpl
|
@hookimpl
|
||||||
def extra_template_vars(view_name):
|
def extra_template_vars(view_name, request):
|
||||||
return {
|
return {
|
||||||
"view_name": view_name,
|
"view_name": view_name,
|
||||||
|
"request": request,
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
@ -19,6 +20,7 @@ def custom_pages_client(tmp_path_factory):
|
||||||
pages_dir = template_dir / "pages"
|
pages_dir = template_dir / "pages"
|
||||||
pages_dir.mkdir()
|
pages_dir.mkdir()
|
||||||
(pages_dir / "about.html").write_text("ABOUT! view_name:{{ view_name }}", "utf-8")
|
(pages_dir / "about.html").write_text("ABOUT! view_name:{{ view_name }}", "utf-8")
|
||||||
|
(pages_dir / "request.html").write_text("path:{{ request.path }}", "utf-8")
|
||||||
(pages_dir / "202.html").write_text("{{ custom_status(202) }}202!", "utf-8")
|
(pages_dir / "202.html").write_text("{{ custom_status(202) }}202!", "utf-8")
|
||||||
(pages_dir / "headers.html").write_text(
|
(pages_dir / "headers.html").write_text(
|
||||||
'{{ custom_header("x-this-is-foo", "foo") }}FOO'
|
'{{ custom_header("x-this-is-foo", "foo") }}FOO'
|
||||||
|
|
@ -49,6 +51,12 @@ def test_custom_pages_view_name(custom_pages_client):
|
||||||
assert "ABOUT! view_name:page" == response.text
|
assert "ABOUT! view_name:page" == response.text
|
||||||
|
|
||||||
|
|
||||||
|
def test_request_is_available(custom_pages_client):
|
||||||
|
response = custom_pages_client.get("/request")
|
||||||
|
assert 200 == response.status
|
||||||
|
assert "path:/request" == response.text
|
||||||
|
|
||||||
|
|
||||||
def test_custom_pages_nested(custom_pages_client):
|
def test_custom_pages_nested(custom_pages_client):
|
||||||
response = custom_pages_client.get("/nested/nest")
|
response = custom_pages_client.get("/nested/nest")
|
||||||
assert 200 == response.status
|
assert 200 == response.status
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue