Files
shelfmark/tests/core/test_search_plan.py
T
Alex 3be99effe4 Base url additions and bug fixes (#519)
- Base URL option in settings for reverse proxy setups
- Fix NZB downloads not deleting on completion
- Fix handling for audiobook files over 100+ parts
- Fix prowlarr search timeout 
- Fix prowlarr categorisation for expanded searches
2026-01-23 13:03:02 +00:00

71 lines
2.5 KiB
Python

from shelfmark.metadata_providers import BookMetadata
from shelfmark.core.search_plan import build_release_search_plan
class TestReleaseSearchPlan:
def test_uses_default_languages_when_none(self, monkeypatch):
# config.BOOK_LANGUAGE is a Config attribute; patch the instance.
import shelfmark.core.search_plan as sp
monkeypatch.setattr(sp.config, "BOOK_LANGUAGE", ["en", "hu"], raising=False)
book = BookMetadata(
provider="hardcover",
provider_id="123",
title="Mistborn: The Final Empire",
search_title="The Final Empire",
search_author="Brandon Sanderson",
authors=["Brandon Sanderson"],
titles_by_language={
"en": "Mistborn: The Final Empire",
"hu": "A végső birodalom",
},
isbn_13="9780765311788",
)
plan = build_release_search_plan(book, languages=None)
assert plan.languages == ["en", "hu"]
assert plan.isbn_candidates == ["9780765311788"]
assert [v.query for v in plan.title_variants] == [
"The Final Empire Brandon Sanderson",
"A végső birodalom Brandon Sanderson",
]
# Title-only variants are used by some sources (e.g. Prowlarr).
assert [v.title for v in plan.title_variants] == [
"The Final Empire",
"A végső birodalom",
]
assert [(v.title, v.languages) for v in plan.grouped_title_variants] == [
("The Final Empire", ["en"]),
("A végső birodalom", ["hu"]),
]
def test_all_language_disables_grouping(self, monkeypatch):
import shelfmark.core.search_plan as sp
monkeypatch.setattr(sp.config, "BOOK_LANGUAGE", ["en"], raising=False)
book = BookMetadata(
provider="hardcover",
provider_id="123",
title="The Lightning Thief",
authors=["Rick Riordan"],
titles_by_language={"hu": "A villámtolvaj"},
)
plan = build_release_search_plan(book, languages=["all"])
assert plan.languages is None
assert [v.query for v in plan.title_variants] == [
"The Lightning Thief Rick Riordan",
]
assert [v.title for v in plan.title_variants] == [
"The Lightning Thief",
]
assert [(v.title, v.languages) for v in plan.grouped_title_variants] == [
("The Lightning Thief", None),
]