dnd5-scripts/generate_npc/tests/test_generate_npc.py

61 lines
2.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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))
npc_path = Path(__file__).resolve().parent.parent
if str(npc_path) not in sys.path:
sys.path.insert(0, str(npc_path))
from gen_npc import generate_npc
# ----------------------------------------------- Тесты Генерации NPC ------------------------------------------------------------
def test_generate_npc_default():
"""
Проверяет базовую генерацию NPC с пустыми ограничениями.
Убеждается, что возвращается непустая строка с результатом.
"""
result = generate_npc("тест", [{}])
assert isinstance(result, str)
assert len(result) > 0
assert "lvl 1" in result
def test_generate_npc_with_region():
"""
Проверяет генерацию NPC с указанием прайм-мира и конкретного региона.
Проверяет срабатывание региональных перезаписей.
"""
req = {
"world": "Toril",
"region": "Waterdeep",
"count": 2,
"level": 3
}
result = generate_npc("тест", [req])
assert isinstance(result, str)
assert "lvl 3" in result
assert "#2 —" in result
def test_generate_npc_planar():
"""
Проверяет генерацию NPC для планарных миров (без региона).
Гарантирует корректную маршрутизацию к планарным шансам.
"""
req = {
"world": "lower_planes_le",
"count": 1,
"level": 5
}
result = generate_npc("тест", [req])
assert isinstance(result, str)
assert "lvl 5" in result
if __name__ == "__main__":
test_generate_npc_default()
test_generate_npc_with_region()
test_generate_npc_planar()
print("Все тесты generate_npc успешно пройдены!")