Spaces:
Sleeping
Sleeping
| from nl2sql.verifier import Verifier | |
| from nl2sql.types import StageResult, StageTrace | |
| def make_exec_result(ok=True, error=None): | |
| return StageResult( | |
| ok=ok, data={"dummy": True} if ok else None, trace=None, error=error | |
| ) | |
| def test_verifier_handles_execution_error(): | |
| v = Verifier() | |
| r = v.run( | |
| sql="SELECT 1", exec_result=make_exec_result(ok=False, error=["db error"]) | |
| ) | |
| assert not r.ok | |
| assert "execution_error" in r.trace.notes["reason"] | |
| assert r.error == ["db error"] | |
| def test_verifier_detects_agg_without_group(): | |
| v = Verifier() | |
| sql = "SELECT COUNT(*) FROM users" | |
| r = v.run(sql=sql, exec_result=make_exec_result(ok=True)) | |
| assert not r.ok | |
| assert any("Aggregation without GROUP BY" in e for e in r.error) | |
| def test_verifier_parses_valid_sql_ok(): | |
| v = Verifier() | |
| sql = "SELECT COUNT(*), city FROM users GROUP BY city" | |
| r = v.run(sql=sql, exec_result=make_exec_result(ok=True)) | |
| assert r.ok | |
| assert r.data == {"verified": True} | |
| assert isinstance(r.trace, StageTrace) | |