kopia lustrzana https://github.com/simonw/datasette
Made show_messages available to plugins, closes #864
rodzic
7ac4936cec
commit
a8a5f81372
|
@ -739,6 +739,7 @@ class Datasette:
|
|||
"zip": zip,
|
||||
"body_scripts": body_scripts,
|
||||
"format_bytes": format_bytes,
|
||||
"show_messages": lambda: self._show_messages(request),
|
||||
"extra_css_urls": self._asset_urls("extra_css_urls", template, context),
|
||||
"extra_js_urls": self._asset_urls("extra_js_urls", template, context),
|
||||
"base_url": self.config("base_url"),
|
||||
|
|
|
@ -92,7 +92,6 @@ class BaseView:
|
|||
**{
|
||||
"database_url": self.database_url,
|
||||
"database_color": self.database_color,
|
||||
"show_messages": lambda: self.ds._show_messages(request),
|
||||
"select_templates": [
|
||||
"{}{}".format(
|
||||
"*" if template_name == template.name else "", template_name
|
||||
|
|
|
@ -192,10 +192,13 @@ def register_routes():
|
|||
|
||||
def add_message(datasette, request):
|
||||
datasette.add_message(request, "Hello from messages")
|
||||
print("Adding message")
|
||||
print(request._messages)
|
||||
return Response.html("Added message")
|
||||
|
||||
async def render_message(datasette, request):
|
||||
return Response.html(
|
||||
await datasette.render_template("render_message.html", request=request)
|
||||
)
|
||||
|
||||
return [
|
||||
(r"/one/$", one),
|
||||
(r"/two/(?P<name>.*)$", two),
|
||||
|
@ -204,6 +207,7 @@ def register_routes():
|
|||
(r"/csrftoken-form/$", csrftoken_form),
|
||||
(r"/not-async/$", not_async),
|
||||
(r"/add-message/$", add_message),
|
||||
(r"/render-message/$", render_message),
|
||||
]
|
||||
|
||||
|
||||
|
|
|
@ -610,6 +610,16 @@ def test_register_routes_add_message(app_client):
|
|||
assert [["Hello from messages", 1]] == decoded
|
||||
|
||||
|
||||
def test_register_routes_render_message(restore_working_directory, tmpdir_factory):
|
||||
templates = tmpdir_factory.mktemp("templates")
|
||||
(templates / "render_message.html").write_text('{% extends "base.html" %}', "utf-8")
|
||||
with make_app_client(template_dir=templates) as client:
|
||||
response1 = client.get("/add-message/")
|
||||
response2 = client.get("/render-message/", cookies=response1.cookies)
|
||||
assert 200 == response2.status
|
||||
assert "Hello from messages" in response2.text
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_startup(app_client):
|
||||
await app_client.ds.invoke_startup()
|
||||
|
|
Ładowanie…
Reference in New Issue