codex author changes

This commit is contained in:
MirSob
2026-04-26 00:46:48 +02:00
parent b5c2929062
commit d07c6b033f
9 changed files with 577 additions and 6 deletions

View File

@@ -83,6 +83,69 @@ class InferBookTests(unittest.TestCase):
self.assertEqual(row["sequence"], "05")
self.assertEqual(row["title"], "Pogrzebany")
def test_build_proposed_path_omits_author_from_subfolders(self) -> None:
proposed_path = report.build_proposed_abs_path(
"Jussi Adler-Olsen",
"Adler-Olsen Jussi - Departament Q",
"04",
"",
"Kartoteka 64 - Jussi Adler-Olsen",
"",
)
self.assertEqual(
proposed_path,
"Jussi Adler-Olsen/Departament Q/Vol. 04 - Kartoteka 64",
)
def test_build_proposed_path_omits_author_only_series_folder(self) -> None:
proposed_path = report.build_proposed_abs_path(
"Jeffrey Archer",
"Archer",
"",
"",
"Kain I Abel",
"",
)
self.assertEqual(proposed_path, "Jeffrey Archer/Kain I Abel")
def test_strips_nearly_matching_author_prefix_from_title(self) -> None:
row = self.infer_row(
"Abmercombie Joe/Abercrombie Joe - Czerwona kraina (Audiobooki2.pl)",
["Czerwona kraina (01).mp3"],
)
self.assertEqual(row["author"], "Abmercombie Joe")
self.assertEqual(row["title"], "Czerwona kraina (Audiobooki2 pl)")
self.assertEqual(
row["proposed_abs_path"],
"Abmercombie Joe/Czerwona kraina (Audiobooki2 pl)",
)
def test_strips_nearly_matching_author_prefix_from_nested_title(self) -> None:
row = self.infer_row(
"Dan Simons/Dan Simmons - cykl Hyperion (tom 3) Endymion (Audiobooki2.pl)",
["001 Endymion.mp3"],
)
self.assertEqual(row["author"], "Dan Simons")
self.assertEqual(row["title"], "cykl Hyperion (tom 3) Endymion (Audiobooki2 pl)")
self.assertEqual(
row["proposed_abs_path"],
"Dan Simons/cykl Hyperion (tom 3) Endymion (Audiobooki2 pl)",
)
def test_strips_multi_author_prefix_when_current_author_is_in_root(self) -> None:
row = self.infer_row(
"Chmielarz Wojciech/Ćwiek Jakub i Chmielarz Wojciech - Skowyt",
["1.mp3"],
)
self.assertEqual(row["author"], "Chmielarz Wojciech")
self.assertEqual(row["title"], "Skowyt")
self.assertEqual(row["proposed_abs_path"], "Chmielarz Wojciech/Skowyt")
if __name__ == "__main__":
unittest.main()