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