kopia lustrzana https://github.com/simonw/datasette
Trace write SQL queries in addition to read ones, closes #1568
rodzic
7c8f8aa209
commit
f81d9d0cd9
|
@ -99,7 +99,9 @@ class Database:
|
|||
with conn:
|
||||
return conn.execute(sql, params or [])
|
||||
|
||||
return await self.execute_write_fn(_inner, block=block)
|
||||
with trace("sql", database=self.name, sql=sql.strip(), params=params):
|
||||
results = await self.execute_write_fn(_inner, block=block)
|
||||
return results
|
||||
|
||||
async def execute_write_fn(self, fn, block=False):
|
||||
task_id = uuid.uuid5(uuid.NAMESPACE_DNS, "datasette.io")
|
||||
|
|
|
@ -939,6 +939,19 @@ def test_trace(trace_debug):
|
|||
assert isinstance(trace["sql"], str)
|
||||
assert isinstance(trace["params"], (list, dict, None.__class__))
|
||||
|
||||
sqls = [trace["sql"] for trace in trace_info["traces"] if "sql" in trace]
|
||||
# There should be a mix of different types of SQL statement
|
||||
expected = (
|
||||
"CREATE TABLE ",
|
||||
"PRAGMA ",
|
||||
"INSERT OR REPLACE INTO ",
|
||||
"DELETE FROM ",
|
||||
"INSERT INTO",
|
||||
"select ",
|
||||
)
|
||||
for prefix in expected:
|
||||
assert any(sql.startswith(prefix) for sql in sqls)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"path,status_code",
|
||||
|
|
Ładowanie…
Reference in New Issue