fix: match the compact edition markers a cover carries
"Building Microservices, 2E" never matched "Building Microservices". Key the strip on the trailing "e" so 2E, 5e and 3 Ed are caught, while a bare number leaves "Catch 22" and "Blade Runner 2049" alone. Stored keys are recomputed.
This commit is contained in:
@@ -30,6 +30,11 @@ class TestNormalizeTitle:
|
||||
("Frankenstein (Illustrated)", "frankenstein"),
|
||||
("Frankenstein [Kindle Edition]", "frankenstein"),
|
||||
("Frankenstein, 2nd Edition", "frankenstein"),
|
||||
# The compact forms a cover actually carries.
|
||||
("Building Microservices, 2E", "building microservices"),
|
||||
("Building Microservices 2e", "building microservices"),
|
||||
("Frankenstein 3 Ed", "frankenstein"),
|
||||
("Dungeons & Dragons 5e", "dungeons and dragons"),
|
||||
("Frankenstein Revised Edition", "frankenstein"),
|
||||
("Dune Deluxe Edition Illustrated", "dune"),
|
||||
("", ""),
|
||||
@@ -47,6 +52,13 @@ class TestNormalizeTitle:
|
||||
"""An article-only title is not improved by having no article left."""
|
||||
assert normalize_title("The") == "the"
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"title", ["Catch 22", "Fahrenheit 451", "Blade Runner 2049", "1984", "Apollo 13"]
|
||||
)
|
||||
def test_a_number_is_not_an_edition(self, title: str) -> None:
|
||||
"""Edition stripping keys on the `e`; a bare number is part of the title."""
|
||||
assert normalize_title(title) == title.casefold()
|
||||
|
||||
|
||||
|
||||
class TestNormalizeAuthor:
|
||||
|
||||
Reference in New Issue
Block a user