DFiP_Budget_planing/perf/tests/test_svod2_analysis.py
Andrey Epifancev 9272ea2527 perf: правки финального ревью фазы 3 (I-4, I-5, M-11, M-13, M-14, T15.2, T17.1, T17.3)
Селектор строк данных свода 2 исключает скелетоны MRT, settle ждёт 0 скелетонов;
first_rows_ms через waitForFunction(raf); счётчики загрузки не пишутся в запись фильтра;
scale_compare различает view/search; api_split не считает строки для facets;
README: порядок до/после и новые метрики.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 00:46:05 +04:00

25 lines
1.4 KiB
Python

"""Самопроверка разборщиков свода 2 в perf/analysis (без стенда и БД)."""
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "analysis"))
import explain_manual # noqa: E402
import scale_compare # noqa: E402
def test_svod2_key():
assert scale_compare.svod2_key("/api/v1/svod/2/GO/2026") == "GET свод 2 GO"
assert scale_compare.svod2_key("/api/v1/svod/2/RF/2026?view=compact&offset=0&limit=300") == "GET свод 2 RF страница compact"
assert scale_compare.svod2_key("/api/v1/svod/2/RF/2026?view=full&offset=0&limit=300") == "GET свод 2 RF страница full"
assert scale_compare.svod2_key("/api/v1/svod/2/RF/2026?offset=0&limit=300") == "GET свод 2 RF страница"
assert scale_compare.svod2_key("/api/v1/svod/2/RF/2026?view=compact&limit=300&search=1") == "GET свод 2 RF страница compact поиск"
assert scale_compare.svod2_key("/api/v1/svod/2/GO/2026?view=full") == "GET свод 2 GO full"
assert scale_compare.svod2_key("/api/v1/svod/2/GO/2026?search=1") == "GET свод 2 GO поиск"
assert scale_compare.svod2_key("/api/v1/svod/2/GO/2026/facets?search=1") == "GET свод 2 GO facets"
def test_explain_has_svod2_queries():
names = {q["name"] for q in explain_manual.queries(1, 2, 2026)}
assert {"svod2_go_page", "svod2_rf_page", "svod2_rf_search", "svod2_go_facets"} <= names