feat(generator): добавлена команда слепков заказов

- Зачем:
  - задача #92 добавляет второй источник и показывает слепок как чистую функцию зерна и дня.
- Что:
  - добавлены окно, состояние на границе суток и канонические байты с настоящими миллисекундами.
  - добавлены команда snapshot, сдвиг D → D−1 и переиспользование проигранных дней.
  - опись дополнена хешами слепков и поведенческими тестами.
- Проверка:
  - в generator выполнены make lint, make typecheck и make test: 427 тестов.
This commit is contained in:
2026-08-18 17:12:49 +03:00
parent c11da3b252
commit 8e21381e13
11 changed files with 740 additions and 46 deletions
+26
View File
@@ -0,0 +1,26 @@
"""Общее для всех проверок: чистое окружение прогона.
Переменные запуска живут на этой машине по-настоящему — стенд их экспортирует.
Тест, читающий их у машины, зелен у одного и красен у другого, поэтому интерфейс
запуска проверяется только тем, что ему передали аргументами.
"""
import pytest
LAUNCH_VARIABLES = (
"GENERATOR_SEED",
"GENERATOR_DAY",
"GENERATOR_DAYS",
"GENERATOR_LIMIT",
"GENERATOR_SPEED",
"GENERATOR_FILE",
"KAFKA_BOOTSTRAP_SERVERS",
"KAFKA_TOPIC",
)
@pytest.fixture(autouse=True)
def bare_environment(monkeypatch):
"""Прогон тестов не зависит от того, что задано в окружении машины."""
for name in LAUNCH_VARIABLES:
monkeypatch.delenv(name, raising=False)