marketplace-intelligence / tests /test_query_runner.py
soupstick's picture
rebuild: NL→SQL→Dashboard marketplace analytics + FastAPI + Docker + full test suite
0b005d6
Raw
History Blame Contribute Delete
1.09 kB
from app.query_runner import get_schema, run_query
def test_basic_query():
ok, rows, err = run_query("SELECT COUNT(*) as count FROM orders LIMIT 1")
assert ok is True
assert err == ""
assert len(rows) == 1
assert rows[0]["count"] > 0
def test_schema_returns_all_tables():
schema = get_schema()
expected_tables = ["orders", "customers", "products", "returns", "fraud_events"]
for table in expected_tables:
assert table in schema["tables"], f"Table '{table}' missing from schema"
def test_row_count_not_exceeded():
ok, rows, _ = run_query("SELECT * FROM orders LIMIT 500")
assert ok is True
assert len(rows) <= 500
def test_bad_sql_returns_error():
ok, rows, err = run_query("SELECT * FROM nonexistent_table_xyz LIMIT 5")
assert ok is False
assert rows == []
assert len(err) > 0
def test_revenue_aggregation():
ok, rows, err = run_query(
"SELECT SUM(total_amount) as total FROM orders WHERE order_status='completed' LIMIT 1"
)
assert ok is True
assert err == ""
assert rows[0]["total"] > 0