mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
datasette.client now applies base_url, closes #1026
This commit is contained in:
parent
7a67bc7a56
commit
84bc7244c1
5 changed files with 56 additions and 13 deletions
|
|
@ -257,6 +257,9 @@ def register_routes():
|
|||
)
|
||||
)
|
||||
|
||||
def asgi_scope(scope):
|
||||
return Response.json(scope, default=repr)
|
||||
|
||||
return [
|
||||
(r"/one/$", one),
|
||||
(r"/two/(?P<name>.*)$", two),
|
||||
|
|
@ -267,6 +270,7 @@ def register_routes():
|
|||
(r"/not-async/$", not_async),
|
||||
(r"/add-message/$", add_message),
|
||||
(r"/render-message/$", render_message),
|
||||
(r"/asgi-scope$", asgi_scope),
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -31,14 +31,37 @@ async def test_client_methods(datasette, method, path, expected_status):
|
|||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_client_post(datasette):
|
||||
response = await datasette.client.post(
|
||||
"/-/messages",
|
||||
data={
|
||||
"message": "A message",
|
||||
},
|
||||
allow_redirects=False,
|
||||
)
|
||||
assert isinstance(response, httpx.Response)
|
||||
assert response.status_code == 302
|
||||
assert "ds_messages" in response.cookies
|
||||
@pytest.mark.parametrize("prefix", [None, "/prefix/"])
|
||||
async def test_client_post(datasette, prefix):
|
||||
original_base_url = datasette._config["base_url"]
|
||||
try:
|
||||
if prefix is not None:
|
||||
datasette._config["base_url"] = prefix
|
||||
response = await datasette.client.post(
|
||||
"/-/messages",
|
||||
data={
|
||||
"message": "A message",
|
||||
},
|
||||
allow_redirects=False,
|
||||
)
|
||||
assert isinstance(response, httpx.Response)
|
||||
assert response.status_code == 302
|
||||
assert "ds_messages" in response.cookies
|
||||
finally:
|
||||
datasette._config["base_url"] = original_base_url
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@pytest.mark.parametrize(
|
||||
"prefix,expected_path", [(None, "/asgi-scope"), ("/prefix/", "/prefix/asgi-scope")]
|
||||
)
|
||||
async def test_client_path(datasette, prefix, expected_path):
|
||||
original_base_url = datasette._config["base_url"]
|
||||
try:
|
||||
if prefix is not None:
|
||||
datasette._config["base_url"] = prefix
|
||||
response = await datasette.client.get("/asgi-scope")
|
||||
path = response.json()["path"]
|
||||
assert path == expected_path
|
||||
finally:
|
||||
datasette._config["base_url"] = original_base_url
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue