mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
Finished implementation of ?_trace=1 debug tool
I redesigned the JSON output and added a handy "traceback" key showing three relevant lines of the current traceback for each logged query. Closes #435
This commit is contained in:
parent
37adf32290
commit
a0d444837f
3 changed files with 43 additions and 20 deletions
|
|
@ -1469,12 +1469,22 @@ def test_infinity_returned_as_invalid_json_if_requested(app_client):
|
|||
def test_trace(app_client):
|
||||
response = app_client.get("/fixtures/simple_primary_key.json?_trace=1")
|
||||
data = response.json
|
||||
assert "_traces" in data
|
||||
traces = data["_traces"]
|
||||
assert isinstance(traces["duration_sum_ms"], float)
|
||||
assert isinstance(traces["num_traces"], int)
|
||||
assert isinstance(traces["traces"], dict)
|
||||
assert len(traces["traces"]["queries"]) == traces["num_traces"]
|
||||
assert "_trace" in data
|
||||
trace_info = data["_trace"]
|
||||
assert isinstance(trace_info["request_duration_ms"], float)
|
||||
assert isinstance(trace_info["sum_trace_duration_ms"], float)
|
||||
assert isinstance(trace_info["num_traces"], int)
|
||||
assert isinstance(trace_info["traces"], list)
|
||||
assert len(trace_info["traces"]) == trace_info["num_traces"]
|
||||
for trace in trace_info["traces"]:
|
||||
assert isinstance(trace["type"], str)
|
||||
assert isinstance(trace["start"], float)
|
||||
assert isinstance(trace["end"], float)
|
||||
assert trace["duration_ms"] == (trace["end"] - trace["start"]) * 1000
|
||||
assert isinstance(trace["traceback"], list)
|
||||
assert isinstance(trace["database"], str)
|
||||
assert isinstance(trace["sql"], str)
|
||||
assert isinstance(trace["params"], (list, dict))
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue