add(aduio): tagging files
This commit is contained in:
@@ -134,3 +134,37 @@ def test_bulk_requests_and_split_scan(client):
|
||||
by_name = {i["name"]: i["suggested_request_id"] for i in items}
|
||||
expected = {f"Die drei Fragezeichen - Folge {n:03d}": created[n - 1]["id"] for n in (1, 2, 3)}
|
||||
assert by_name == expected
|
||||
|
||||
|
||||
def test_audio_tags_written_on_import(client):
|
||||
from mutagen.id3 import ID3
|
||||
|
||||
root = client.tmp_path / "library" / "kids_audio"
|
||||
lib_id = client.post("/api/libraries", json={
|
||||
"name": "KidsAudio", "media_type": "audiobook", "root_path": str(root),
|
||||
}).json()["id"]
|
||||
req_id = client.post("/api/requests", json={
|
||||
"library_id": lib_id, "title": "Die drei ??? Kids Folge 085",
|
||||
"authors": "Ulf Blanck", "series": "Die drei ??? Kids", "volume": 85,
|
||||
}).json()["id"]
|
||||
|
||||
book_dir = client.downloads / "Kids 85 Schnueffler"
|
||||
book_dir.mkdir()
|
||||
for i in range(2):
|
||||
(book_dir / f"track{i}.mp3").write_bytes(b"")
|
||||
|
||||
items = client.get("/api/import/scan").json()["items"]
|
||||
resp = client.post("/api/import", json={"items": [{
|
||||
"path": items[0]["path"], "is_dir": True,
|
||||
"files": items[0]["files"], "request_id": req_id,
|
||||
}]})
|
||||
assert resp.json()["results"][0]["ok"]
|
||||
|
||||
dest = root / "Ulf Blanck" / "Die drei Kids Folge 085" # "?" is stripped from paths
|
||||
files = sorted(dest.iterdir())
|
||||
tags = ID3(files[0])
|
||||
assert str(tags["TALB"]) == "Die drei ??? Kids Folge 085"
|
||||
assert str(tags["TPE1"]) == "Ulf Blanck"
|
||||
assert str(tags["TXXX:SERIES"]) == "Die drei ??? Kids"
|
||||
assert str(tags["TXXX:SERIES-PART"]) == "85"
|
||||
assert str(tags["TRCK"]) == "1/2"
|
||||
|
||||
Reference in New Issue
Block a user