Фиксация изменений

This commit is contained in:
2026-03-05 11:03:17 +03:00
parent 1ef0b4d68c
commit 417b8b6f72
261 changed files with 8215 additions and 332 deletions

View File

@@ -0,0 +1,44 @@
from app.modules.rag.persistence.retrieval_statement_builder import RetrievalStatementBuilder
from app.modules.rag.retrieval.test_filter import build_test_filters, is_test_path
def test_retrieve_builder_adds_test_exclusion_filters() -> None:
builder = RetrievalStatementBuilder()
test_filters = build_test_filters()
sql, params = builder.build_retrieve(
"rag-1",
[0.1, 0.2],
query_text="Explain user service",
layers=["C0_SOURCE_CHUNKS"],
exclude_path_prefixes=test_filters.exclude_path_prefixes,
exclude_like_patterns=test_filters.exclude_like_patterns,
)
assert "NOT (" in sql
assert "path LIKE :exclude_prefix_0" in sql
assert "lower(path) LIKE :exclude_like_0" in sql
assert "ESCAPE E'\\\\'" in sql
assert params["exclude_prefix_0"] == "tests/%"
assert "%.test.%" in params.values()
assert "%\\_test.%" in params.values()
def test_lexical_builder_omits_test_filters_when_not_requested() -> None:
builder = RetrievalStatementBuilder()
sql, params = builder.build_lexical_code(
"rag-1",
query_text="Explain user service",
prefer_non_tests=False,
)
assert sql is not None
assert "exclude_prefix" not in sql
assert "exclude_like" not in sql
assert not any(key.startswith("exclude_") for key in params)
def test_test_filter_does_not_treat_contest_file_as_test() -> None:
assert is_test_path("app/contest.py") is False
assert is_test_path("tests/test_users.py") is True