dnd5-scripts/faction_turns/tests/test_faction_utils.py

35 lines
1.6 KiB
Python

import pytest
import sys
from pathlib import Path
# Добавляем родительскую директорию в sys.path для импорта модулей
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
from faction_utils import roll_dice, normalize_wikilink
# ----------------------------------------------- Dice Tests ------------------------------------------------------------
def test_roll_dice_static():
"""Проверяет парсинг нотации кубиков и вычисление статических бросков."""
assert roll_dice("1d1+5") == 6
assert roll_dice("2d1-1") == 1
assert roll_dice("10d1+0") == 10
def test_roll_dice_random():
"""Проверяет, что результаты случайных бросков кубиков находятся в ожидаемых границах."""
result = roll_dice("1d20")
assert 1 <= result <= 20
result = roll_dice("2d6+2")
assert 4 <= result <= 14
# ----------------------------------------------- String Parsing Tests ------------------------------------------------------------
def test_normalize_wikilink():
"""Проверяет нормализацию синтаксиса Obsidian wikilink в чистую строку."""
assert normalize_wikilink("[[Waterdeep]]") == "waterdeep"
assert normalize_wikilink("[[Waterdeep|City]]") == "waterdeep"
assert normalize_wikilink("Waterdeep") == "waterdeep"
assert normalize_wikilink("[[Neverwinter|The Jewel of the North]]") == "neverwinter"
assert normalize_wikilink("") == ""