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