mirror of
https://github.com/denizsafak/abogen.git
synced 2026-07-18 05:40:26 +02:00
85 lines
2.3 KiB
Python
85 lines
2.3 KiB
Python
from __future__ import annotations
|
|
|
|
import json
|
|
|
|
from abogen.integrations.audiobookshelf import AudiobookshelfClient, AudiobookshelfConfig
|
|
|
|
|
|
def test_upload_fields_include_series_sequence(tmp_path):
|
|
audio_path = tmp_path / "book.mp3"
|
|
audio_path.write_bytes(b"audio")
|
|
|
|
config = AudiobookshelfConfig(
|
|
base_url="https://example.test",
|
|
api_token="token",
|
|
library_id="library-id",
|
|
folder_id="folder-id",
|
|
)
|
|
client = AudiobookshelfClient(config)
|
|
|
|
client._folder_cache = ("folder-id", "Folder", "Library")
|
|
|
|
metadata = {
|
|
"title": "Example Title",
|
|
"seriesName": "Example Saga",
|
|
"seriesSequence": "7",
|
|
}
|
|
|
|
fields = client._build_upload_fields(audio_path, metadata, chapters=None)
|
|
|
|
assert fields["series"] == "Example Saga"
|
|
assert fields["seriesSequence"] == "7"
|
|
|
|
assert "metadata" in fields
|
|
payload = json.loads(fields["metadata"])
|
|
assert payload["seriesSequence"] == "7"
|
|
|
|
|
|
def test_upload_fields_normalize_alternate_sequence_keys(tmp_path):
|
|
audio_path = tmp_path / "book.mp3"
|
|
audio_path.write_bytes(b"audio")
|
|
|
|
config = AudiobookshelfConfig(
|
|
base_url="https://example.test",
|
|
api_token="token",
|
|
library_id="library-id",
|
|
folder_id="folder-id",
|
|
)
|
|
client = AudiobookshelfClient(config)
|
|
client._folder_cache = ("folder-id", "Folder", "Library")
|
|
|
|
metadata = {
|
|
"title": "Example Title",
|
|
"seriesName": "Example Saga",
|
|
"series_index": "Book 3",
|
|
}
|
|
|
|
fields = client._build_upload_fields(audio_path, metadata, chapters=None)
|
|
|
|
assert fields["series"] == "Example Saga"
|
|
assert fields["seriesSequence"] == "3"
|
|
|
|
|
|
def test_upload_fields_preserve_decimal_sequence(tmp_path):
|
|
audio_path = tmp_path / "book.mp3"
|
|
audio_path.write_bytes(b"audio")
|
|
|
|
config = AudiobookshelfConfig(
|
|
base_url="https://example.test",
|
|
api_token="token",
|
|
library_id="library-id",
|
|
folder_id="folder-id",
|
|
)
|
|
client = AudiobookshelfClient(config)
|
|
client._folder_cache = ("folder-id", "Folder", "Library")
|
|
|
|
metadata = {
|
|
"title": "Example Title",
|
|
"seriesName": "Example Saga",
|
|
"seriesSequence": "0.5",
|
|
}
|
|
|
|
fields = client._build_upload_fields(audio_path, metadata, chapters=None)
|
|
|
|
assert fields["seriesSequence"] == "0.5"
|