61 lines
2.3 KiB
Python
61 lines
2.3 KiB
Python
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 успешно пройдены!")
|