fix(generator): исключено смешение миров при запуске

- Зачем:
  - старый state и ручной live-генератор могли тихо писать события в новый мир данных.
- Что:
  - добавлена общая проверка чистого стенда для Airflow и host-путей.
  - защищены backfill, import, continue и clean-start сценарии live-generator.
  - описан миграционный отказ старого state.
- Проверка:
  - make generator-test; docker compose config --quiet; py_compile; bash -n.
This commit is contained in:
2026-07-05 20:21:13 +03:00
parent 525bd8cabf
commit 080d5ae313
17 changed files with 464 additions and 45 deletions
+9
View File
@@ -10,6 +10,7 @@ from unittest.mock import MagicMock, patch
import pytest
from generator import GeneratorState, KafkaStateManager
from clickstream_generator.state import UnsupportedStateVersionError
def _make_valid_rng_state(seed: int = 42):
@@ -423,6 +424,14 @@ class TestGeneratorStateValidation:
with pytest.raises(ValueError, match="version"):
GeneratorState.from_dict(data)
def test_from_dict_rejects_known_old_state_version_loudly(self):
"""Известная старая версия state даёт отдельную ошибку миграции."""
data = _make_valid_state_data()
data["version"] = "2.0"
with pytest.raises(UnsupportedStateVersionError, match="2.0.*3.0"):
GeneratorState.from_dict(data)
class TestKafkaStateManager:
"""Тесты менеджера состояния."""