Files
2026-11-13 22:02:30 +03:00

3.3 KiB

Отчет приемки

Приемка завершена 2026-11-13 20:26:46 +03:00. Фактическое календарное время 8 минут 33 секунды; это не сумма агентного времени. Ориентир 2–3 часа не исчерпан. Незавершенных обязательных пунктов нет. README-команды генератор→ETL→SQL проверены исполнителем в новой docs/verification/: тот же SHA256 входа, 301/290/11, 99119395 копеек, SQL 3/30/1; повтор тестов 6 OK (0.132s). Доказательства: docs/verification/RUN_LOG.md и coordination/handoffs/documentation-engineer.md. Начало работы 2026-11-13 20:18:13 +03:00. Это учебный локальный ETL на синтетических данных.

Требование Файл Проверка Результат
Грязные данные с seed scripts/generate_data.py, data/raw/orders.csv генерация seed 42 301 строка
Очистка и точные деньги src/pipeline.py ручная независимая фикстура unittest 2 факта, 2080 копеек
Дубли, конфликты, пропуски, даты tests/test_pipeline.py приоритеты и первая валидная запись PASS
Баланс и причины reports/etl/quality.json, rejected.csv 301=290+11, сумма причин 11 PASS
Факты и агрегаты output/sales.sqlite сумма обеих таблиц 99119395 копеек
Идемпотентность tests/test_pipeline.py два запуска, сортированные логические данные PASS
Пустой и весь плохой вход tests/test_pipeline.py корректная пустая замена PASS
Атомарность БД tests/test_pipeline.py SQL trigger вызывает сбой INSERT после DELETE прежние данные сохранены
Три SQL sql/.sql, reports/sql/.csv реальный runner, пустая БД, повтор CSV 3 категории, 30 дней, 1 сигнал
Независимая приемка tests/test_pipeline.py тимлид: unittest discover -s tests -v 6 tests, 0.129s, OK

Качество: missing_required=2, invalid_date=2, invalid_quantity=2, invalid_price=3, duplicate=1, conflicting_key=1. Принятые исправленные=290 (синтетический генератор намеренно варьирует представление). Валюта RUB, суммы в копейках.

Ограничения: CSV целиком в памяти; полная перезагрузка, порядок конфликтующих строк значим; три формата дат без времени; одна валюта; возвраты не моделируются. Общей транзакции БД и файлов отчетов нет: при сбое публикации отчетов нужен повтор. Аномалия — сигнал, не дефект исходной записи. Внешняя эксплуатация, большие данные и конкурентные запуски не проверялись.