- golden_helpers, scripts/golden_update.py (--check), test_golden на 66 ОСВ и синтетике; make golden-update/golden-check/test-fixtures - тест покрытия словарей (R-22): счётчик срабатываний Pattern; из osv_headers.yaml удалены неиспользуемые service_columns kpp/code/quantity/currency - синтетика s14–s16 в генераторе и таблице ожиданий; skip вместо падения при отсутствии osv/synthetic (T11.1); комментарий R-21 в s07 (T11.2) - линтер: предел адреса 10 вместо 4 (T3.1), обращение cell(3, 4) (T3.8); реальные файлы не фиксируют BU/RUB (T3.9) - README: golden-процесс; отмечены Task 12 и пункты 4.2, 4.3 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
50 lines
2.3 KiB
Makefile
50 lines
2.3 KiB
Makefile
# Команды разработки tabular-parser. Backend — api/.venv; запуск из корня репозитория.
|
||
VENV := api/.venv
|
||
BIN := $(CURDIR)/$(VENV)/bin
|
||
COMPOSE_FILE ?= ../docs/dev/docker-compose.yml
|
||
|
||
.PHONY: venv lint test test-integration test-fixtures golden-update golden-check check docker-build check-full up
|
||
|
||
# Python 3.11 (версия платформы); внутренние пакеты raisa_* вне банка недоступны — пропускаем их
|
||
venv:
|
||
cd api && uv venv --python 3.11 --allow-existing .venv
|
||
cd api && grep -v '^raisa_' requirements.txt | uv pip install --python .venv/bin/python -r -
|
||
cd api && grep -v '^-r' requirements-dev.txt | uv pip install --python .venv/bin/python -r -
|
||
|
||
lint:
|
||
cd api && $(BIN)/ruff check .
|
||
cd api && $(BIN)/ruff format --check .
|
||
cd api && $(BIN)/mypy src
|
||
|
||
test:
|
||
cd api && $(BIN)/pytest -m "not integration"
|
||
|
||
test-integration:
|
||
cd api && $(BIN)/pytest -m integration
|
||
|
||
# Тесты на реальных данных из ../fixtures (ARM_KA_FIXTURES): golden-снимки, покрытие словарей, property-тест
|
||
test-fixtures:
|
||
cd api && $(BIN)/pytest -m fixtures
|
||
|
||
# Golden-снимки разбора ОСВ: перезапись в ../fixtures/golden/expected_osv_parse/ + unified diff изменившихся.
|
||
# Результат обязательно просмотреть и коммитить в репозиторий fixtures отдельным коммитом (снимок — регрессия, не оракул)
|
||
golden-update:
|
||
cd api && ENV_FILE=.env.test $(BIN)/python scripts/golden_update.py
|
||
|
||
# То же без записи: код возврата 1, если снимки расходятся с разбором
|
||
golden-check:
|
||
cd api && ENV_FILE=.env.test $(BIN)/python scripts/golden_update.py --check
|
||
|
||
check: lint test
|
||
|
||
# Сборка образа из корня репозитория
|
||
docker-build:
|
||
docker build -t tabular-parser .
|
||
|
||
# Полная проверка перед PR: быстрые проверки, затем NATS/MinIO из compose (make up), затем образ
|
||
check-full: check test-integration docker-build
|
||
|
||
# Только инфраструктура, нужная сервису (без arm-core): NATS и MinIO; postgres — для общей среды compose
|
||
up:
|
||
docker compose -f $(COMPOSE_FILE) up -d --wait postgres nats minio
|