refactor: restructure into package layout and split large modules

This commit is contained in:
2026-02-18 02:43:45 +01:00
parent bc24439da8
commit 8e73e45e2d
51 changed files with 1970 additions and 1848 deletions

View File

@@ -1,7 +1,13 @@
from dataclasses import dataclass
from typing import Any, cast
from auditui import table_utils
from auditui.constants import AUTHOR_NAME_MAX_LENGTH
from auditui.library import (
create_progress_sort_key,
create_title_sort_key,
format_item_as_row,
truncate_author_name,
)
class StubLibrary:
@@ -37,22 +43,22 @@ class StubDownloads:
def test_create_title_sort_key_normalizes_accents() -> None:
key_fn, _ = table_utils.create_title_sort_key()
key_fn, _ = create_title_sort_key()
assert key_fn(["École"]) == "ecole"
assert key_fn(["Zoo"]) == "zoo"
def test_create_progress_sort_key_parses_percent() -> None:
key_fn, _ = table_utils.create_progress_sort_key()
key_fn, _ = create_progress_sort_key()
assert key_fn(["0", "0", "0", "42.5%"]) == 42.5
assert key_fn(["0", "0", "0", "bad"]) == 0.0
def test_truncate_author_name() -> None:
long_name = "A" * (table_utils.AUTHOR_NAME_MAX_LENGTH + 5)
truncated = table_utils.truncate_author_name(long_name)
long_name = "A" * (AUTHOR_NAME_MAX_LENGTH + 5)
truncated = truncate_author_name(long_name)
assert truncated.endswith("...")
assert len(truncated) <= table_utils.AUTHOR_NAME_MAX_LENGTH
assert len(truncated) <= AUTHOR_NAME_MAX_LENGTH
def test_format_item_as_row_with_downloaded() -> None:
@@ -65,7 +71,7 @@ def test_format_item_as_row_with_downloaded() -> None:
"percent": 12.34,
"asin": "ASIN123",
}
title, author, runtime, progress, downloaded = table_utils.format_item_as_row(
title, author, runtime, progress, downloaded = format_item_as_row(
item, library, cast(Any, downloads)
)
assert title == "Title"
@@ -79,5 +85,5 @@ def test_format_item_as_row_zero_progress() -> None:
library = StubLibrary()
item = {"title": "Title", "authors": "Author",
"minutes": 30, "percent": 0.0}
_, _, _, progress, _ = table_utils.format_item_as_row(item, library, None)
_, _, _, progress, _ = format_item_as_row(item, library, None)
assert progress == "0%"