feat(generator): добавлена популяция пользователей
- Зачем: - steady-stream генератору нужны устойчивые пользователи и возвраты между визитами, чтобы поток был похож на живую модель поведения. - Что: - добавлена ограниченная популяция с кулдауном возврата, ротацией новых пользователей и защитой от второго активного визита. - UUID переведены на единый ГПСЧ генератора, а завершение визита считается по запланированному последнему событию. - добавлены регрессионные тесты и обновлена документация генератора. - Проверка: - uv run --with-requirements generator/requirements.txt pytest generator/tests -q
This commit is contained in:
@@ -35,6 +35,18 @@ class TestConfigValidation:
|
||||
with pytest.raises(ValueError, match="GEN_MAX_ACTIVE_SESSIONS"):
|
||||
replace(base_config, max_active_sessions=10, population_max=10)
|
||||
|
||||
def test_new_user_probability_must_be_valid_share(self, base_config):
|
||||
"""Вероятность нового пользователя должна быть долей от 0 до 1."""
|
||||
from dataclasses import replace
|
||||
with pytest.raises(ValueError, match="GEN_P_NEW_USER"):
|
||||
replace(base_config, p_new_user=1.5)
|
||||
|
||||
def test_min_return_minutes_must_not_be_negative(self, base_config):
|
||||
"""Кулдаун возврата не может быть отрицательным."""
|
||||
from dataclasses import replace
|
||||
with pytest.raises(ValueError, match="GEN_MIN_RETURN_MINUTES"):
|
||||
replace(base_config, min_return_minutes=-1)
|
||||
|
||||
def test_data_dir_must_exist(self, base_config):
|
||||
"""data_dir должен существовать."""
|
||||
from dataclasses import replace
|
||||
|
||||
Reference in New Issue
Block a user