Ru2SQL / tests /test_postprocess.py
Tyycha's picture
initial commit
8871df9
Raw
History Blame
1.11 kB
"""Тесты на постобработку SQL."""
from src.models.postprocess import (
is_valid_sql,
normalize_sql,
postprocess,
strip_model_artifacts,
)
def test_strip_markdown_block():
raw = "```sql\nSELECT * FROM users;\n```"
assert strip_model_artifacts(raw).startswith("SELECT")
def test_strip_sql_prefix():
raw = "SQL: SELECT 1;"
assert strip_model_artifacts(raw).startswith("SELECT")
def test_keeps_first_statement():
raw = "SELECT 1; SELECT 2;"
out = strip_model_artifacts(raw)
assert "SELECT 1" in out
assert "SELECT 2" not in out
def test_valid_sql():
assert is_valid_sql("SELECT * FROM students WHERE id = 1")
def test_invalid_sql():
assert not is_valid_sql("SELEC * FRM where")
def test_normalize_em():
a = "SELECT * FROM Users"
b = "select * from users"
assert normalize_sql(a) == normalize_sql(b)
def test_postprocess_full():
raw = "```sql\nSELECT name FROM students WHERE group_id = 1;\nSELECT 2;\n```"
out = postprocess(raw)
assert out.startswith("SELECT name")
assert "SELECT 2" not in out