mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
All API tests now pass, refs #272
CSV tests still all fail. Also I marked test_trace() as skip because I have not yet re-implemented trace.
This commit is contained in:
parent
55fc993667
commit
d8dcc34e36
4 changed files with 24 additions and 4 deletions
|
|
@ -638,9 +638,9 @@ class Datasette:
|
|||
)
|
||||
add_route(
|
||||
RowView.as_asgi(self),
|
||||
r"/<db_name:[^/]+>/<table:[^/]+?>/<pk_path:[^/]+?><as_format:("
|
||||
r"/(?P<db_name>[^/]+)/(?P<table>[^/]+?)/(?P<pk_path>[^/]+?)(?P<as_format>"
|
||||
+ renderer_regex
|
||||
+ r")?$>",
|
||||
+ r")?$",
|
||||
)
|
||||
self.register_custom_units()
|
||||
|
||||
|
|
|
|||
|
|
@ -106,7 +106,17 @@ class AsgiView(HTTPMethodView):
|
|||
path = scope.get("raw_path", scope["path"].encode("utf8"))
|
||||
if scope["query_string"]:
|
||||
path = path + b"?" + scope["query_string"]
|
||||
request = SanicRequest(path, {}, "1.1", scope["method"], None)
|
||||
request = SanicRequest(
|
||||
path,
|
||||
{
|
||||
"Host": dict(scope.get("headers") or [])
|
||||
.get(b"host", b"")
|
||||
.decode("utf8")
|
||||
},
|
||||
"1.1",
|
||||
scope["method"],
|
||||
None,
|
||||
)
|
||||
|
||||
class Woo:
|
||||
def get_extra_info(self, key):
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ class TestClient:
|
|||
"method": "GET",
|
||||
"path": path,
|
||||
"query_string": query_string,
|
||||
"headers": [[b"host", b"localhost"]],
|
||||
},
|
||||
)
|
||||
await instance.send_input({"type": "http.request"})
|
||||
|
|
|
|||
|
|
@ -771,8 +771,8 @@ def test_paginate_tables_and_views(app_client, path, expected_rows, expected_pag
|
|||
fetched.extend(response.json["rows"])
|
||||
path = response.json["next_url"]
|
||||
if path:
|
||||
assert response.json["next"]
|
||||
assert urllib.parse.urlencode({"_next": response.json["next"]}) in path
|
||||
path = path.replace("http://localhost", "")
|
||||
assert count < 30, "Possible infinite loop detected"
|
||||
|
||||
assert expected_rows == len(fetched)
|
||||
|
|
@ -812,6 +812,8 @@ def test_paginate_compound_keys(app_client):
|
|||
response = app_client.get(path)
|
||||
fetched.extend(response.json["rows"])
|
||||
path = response.json["next_url"]
|
||||
if path:
|
||||
path = path.replace("http://localhost", "")
|
||||
assert page < 100
|
||||
assert 1001 == len(fetched)
|
||||
assert 21 == page
|
||||
|
|
@ -833,6 +835,8 @@ def test_paginate_compound_keys_with_extra_filters(app_client):
|
|||
response = app_client.get(path)
|
||||
fetched.extend(response.json["rows"])
|
||||
path = response.json["next_url"]
|
||||
if path:
|
||||
path = path.replace("http://localhost", "")
|
||||
assert 2 == page
|
||||
expected = [r[3] for r in generate_compound_rows(1001) if "d" in r[3]]
|
||||
assert expected == [f["content"] for f in fetched]
|
||||
|
|
@ -881,6 +885,8 @@ def test_sortable(app_client, query_string, sort_key, human_description_en):
|
|||
assert human_description_en == response.json["human_description_en"]
|
||||
fetched.extend(response.json["rows"])
|
||||
path = response.json["next_url"]
|
||||
if path:
|
||||
path = path.replace("http://localhost", "")
|
||||
assert 5 == page
|
||||
expected = list(generate_sortable_rows(201))
|
||||
expected.sort(key=sort_key)
|
||||
|
|
@ -1236,6 +1242,8 @@ def test_page_size_matching_max_returned_rows(
|
|||
fetched.extend(response.json["rows"])
|
||||
assert len(response.json["rows"]) in (1, 50)
|
||||
path = response.json["next_url"]
|
||||
if path:
|
||||
path = path.replace("http://localhost", "")
|
||||
assert 201 == len(fetched)
|
||||
|
||||
|
||||
|
|
@ -1603,6 +1611,7 @@ def test_infinity_returned_as_invalid_json_if_requested(app_client):
|
|||
] == response.json
|
||||
|
||||
|
||||
@pytest.mark.skip
|
||||
def test_trace(app_client):
|
||||
response = app_client.get("/fixtures/simple_primary_key.json?_trace=1")
|
||||
data = response.json
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue