Files

40 lines
1.4 KiB
Python

"""Tests for pure helpers in src.models."""
from src.models import language_folder_name, sanitize_folder_name
class TestSanitizeFolderName:
def test_plain_name_unchanged(self) -> None:
assert sanitize_folder_name("Fallout 2") == "Fallout 2"
def test_colon_becomes_dash(self) -> None:
assert sanitize_folder_name("Baldur's Gate: Dark Alliance") == "Baldur's Gate - Dark Alliance"
def test_strips_trademark_symbols(self) -> None:
assert sanitize_folder_name("Game™ Title®") == "Game Title"
def test_removes_invalid_filesystem_chars(self) -> None:
# ':' becomes ' - ' first, then <>"/\|?* are stripped.
assert sanitize_folder_name('A<B>C:D"E/F\\G|H?I*J') == "ABC - DEFGHIJ"
def test_collapses_multiple_spaces(self) -> None:
assert sanitize_folder_name("A B") == "A B"
def test_collapses_adjacent_dashes_from_colons(self) -> None:
assert sanitize_folder_name("A: : B") == "A - B"
def test_strips_leading_trailing_dots_and_space(self) -> None:
assert sanitize_folder_name(" .Title. ") == "Title"
def test_idempotent(self) -> None:
once = sanitize_folder_name("Witcher 3: Wild Hunt™")
assert sanitize_folder_name(once) == once
class TestLanguageFolderName:
def test_known_code(self) -> None:
assert language_folder_name("cs") == "Czech"
def test_unknown_code_passthrough(self) -> None:
assert language_folder_name("xx") == "xx"