Run library, checks and downloads in background threads with parallel fetching
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
"""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"
|
||||
Reference in New Issue
Block a user