import sys from pathlib import Path scripts_path = Path(__file__).resolve().parent.parent.parent if str(scripts_path) not in sys.path: sys.path.insert(0, str(scripts_path)) enc_path = Path(__file__).resolve().parent.parent if str(enc_path) not in sys.path: sys.path.insert(0, str(enc_path)) from gen_encounter import generate_encounter # ----------------------------------------------- Тесты Генерации Энкаунтеров ------------------------------------------------------------ def test_encounter_default(): """ Проверяет базовую генерацию случайной встречи с настройками по умолчанию. Возвращает непустую строку-отчет. """ result = generate_encounter("тест", [{}]) assert isinstance(result, str) assert "Встреча №1" in result assert "**Уровень группы:** 1" in result def test_encounter_specific_biome(): """ Проверяет генерацию встречи для конкретного биома, уровня и типа PvP. Гарантирует, что параметры запроса применяются корректно. """ req = { "environment": "urban", "level": 5, "encounter_type": "PvP" } result = generate_encounter("тест", [req]) assert isinstance(result, str) assert "**Биом:** Urban" in result assert "**Тип встречи:** PvP" in result assert "**Уровень группы:** 5" in result def test_encounter_planar_world(): """ Проверяет планарные миры. Биом должен игнорироваться при выборе таблиц. Вывод должен содержать информацию о мире/плане. """ req = { "world": "feywild", "level": 8 } result = generate_encounter("тест", [req]) assert isinstance(result, str) assert "**Мир/План:** feywild" in result assert "**Уровень группы:** 8" in result if __name__ == "__main__": test_encounter_default() test_encounter_specific_biome() test_encounter_planar_world() print("Все тесты generate_encounter успешно пройдены!")