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

22 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Отчет приемки
Приемка завершена 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 целиком в памяти; полная перезагрузка, порядок конфликтующих строк значим; три формата дат без времени; одна валюта; возвраты не моделируются. Общей транзакции БД и файлов отчетов нет: при сбое публикации отчетов нужен повтор. Аномалия — сигнал, не дефект исходной записи. Внешняя эксплуатация, большие данные и конкурентные запуски не проверялись.