Skip to main content
Glama
test_query_history.py1.53 kB
from __future__ import annotations import json from spice_mcp.logging.query_history import ( DisabledQueryHistory, QueryHistory, ) def test_query_history_record_and_artifact(tmp_path): history_path = tmp_path / "q.jsonl" artifacts_root = tmp_path / "artifacts" qh = QueryHistory(history_path, artifacts_root) qid = "e-123" qtext = "SELECT 1" qsha = qh.compute_query_sha256(qtext) qh.write_sql_artifact(qtext, qsha) qh.record( execution_id=qid, query_type="raw_sql", query_preview=qtext, status="success", duration_ms=12, rowcount=1, query_sha256=qsha, cache_hit=False, ) # file written assert history_path.exists() lines = history_path.read_text().strip().splitlines() assert len(lines) == 1 rec = json.loads(lines[0]) assert rec["execution_id"] == qid assert rec["rowcount"] == 1 assert "artifacts" in rec # artifact dedup: second write should reuse same path qh.write_sql_artifact(qtext, qsha) artifact_file = artifacts_root / "queries" / "by_sha" / f"{qsha}.sql" assert artifact_file.exists() assert artifact_file.read_text() == qtext def test_query_history_disabled_env(monkeypatch): monkeypatch.setenv("SPICE_QUERY_HISTORY", "disabled") qh = QueryHistory.from_env() assert isinstance(qh, DisabledQueryHistory) # no exceptions on record qh.record(execution_id="x", query_type="raw_sql", query_preview="q", status="success", duration_ms=1)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Evan-Kim2028/spice-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server