test(fixtures): тесты и golden для osv-dkb/** (#10) #17
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/10-osv-dkb-tests"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #10 (первая часть — 72 файла — сделана в PR #12). Stacked on #15 (→ #13); парный PR с golden: RSHB/arm-ka-fixtures (ветка
feat/10-golden, после fixtures#8).Что сделано
tests/fixtures/test_osv_dkb.py— на каждом из 25 файловfixtures/osv-dkb/**(многолистовые книги,sheet:<код счёта>/TDSheet): ошибок нет; locator'ы уникальны; ожидаемые нарушения §1.4 по листам — манифестtests/osv_dkb_expectations.yaml(данные, у каждой записи причина; чего нет в манифесте — должно бытьdone), статус результата — следствие; период — по имени каталога (2025-Q3→ 2025/Q3,2024-10_2025-09→ год конца, квартал и is_cumulative null, предупреждение «не с начала года»); структура строк (parent < row, level, TOTAL уровня 0, коды ACCOUNT начинаются с кода шапки,metrics.rows); контракт v1.1; время (5 с, у больших файлов 30 с). Один разбор файла — все проверки.osv-dkb/**до порога 1 МиБ (GOLDEN_MAX_BYTES): 22 из 25 файлов; три файла Агрокомплекса (9–14 МБ) — без снимков (тестtest_files_over_threshold_have_no_golden_snapshotне даёт добавить). Снимки лежат вgolden/expected_osv_parse/osv-dkb/…. Порог предложен: всё, кроме Агрокомплекса, ≤ 0,5 МБ; при пороге 256 КиБ выпали бы НМ 60/62/76 и НПЗ 60/62/76 — самые показательные (скользящий период, «Итого развернутое»).dkb_helpers.py(expected_period, манифест,violated_kinds),fixtures_helpers.osv_dkb_golden_files,golden_helpers(подкаталогosv-dkb/),golden_update.py, параметрыdkb_file/dkb_golden_fileвconftest; юнит-тесты без каталога fixtures.osv-dkb/**(сделано в #13).Время
make test-fixtures: до (на ветке #15) — 886 тестов, 112 с; после — 936 тестов, 144 с (×1,29, порог ×2).make check: 2023 passed.Находки
fixtures/osv-dkb/README.mdи в моём плане файлов было 22 — фактически 25 (22 + 3 больших)f6e8da9(счётчики в тестах и README)doneassert_valid_result) выполняется и на файлах 50 тыс. строк — время укладывается в лимит 30 сtest_*_real.py) по-прежнему толькоosv/**(требуют один лист ОСВ) — для ДКБ покрыты property-инвариантамиDecisions made without discussion
tabular-parser/api/tests/(рядом с тестами), а не в fixtures: ожидания зависят от поведения парсера (причины — ссылки на OQ).YYYY-Qnне проверяетсяis_cumulative(имя каталога его не задаёт; в пакете «Q3» = «9 месяцев»), только «не None».Что проверить человеку
needs_checkв манифесте (каждая запись с причиной).🤖 Generated with Claude Code