funkwhale/api/tests/music/conftest.py

654 wiersze
41 KiB
Python
Czysty Zwykły widok Historia

import pytest
2018-06-09 13:36:16 +00:00
_artists = {"search": {}, "get": {}}
2018-06-09 13:36:16 +00:00
_artists["search"]["adhesive_wombat"] = {
"artist-list": [
{
2018-06-09 13:36:16 +00:00
"type": "Person",
"ext:score": "100",
"id": "62c3befb-6366-4585-b256-809472333801",
"disambiguation": "George Shaw",
"gender": "male",
"area": {
"sort-name": "Raleigh",
"id": "3f8828b9-ba93-4604-9b92-1f616fa1abd1",
"name": "Raleigh",
},
"sort-name": "Wombat, Adhesive",
"life-span": {"ended": "false"},
"name": "Adhesive Wombat",
},
{
2018-06-09 13:36:16 +00:00
"country": "SE",
"type": "Group",
"ext:score": "42",
"id": "61b34e69-7573-4208-bc89-7061bca5a8fc",
"area": {
"sort-name": "Sweden",
"id": "23d10872-f5ae-3f0c-bf55-332788a16ecb",
"name": "Sweden",
},
"sort-name": "Adhesive",
"life-span": {"end": "2002-07-12", "begin": "1994", "ended": "true"},
"name": "Adhesive",
"begin-area": {
"sort-name": "Katrineholm",
"id": "02390d96-b5a3-4282-a38f-e64a95d08b7f",
"name": "Katrineholm",
},
},
]
}
2018-06-09 13:36:16 +00:00
_artists["get"]["adhesive_wombat"] = {
"artist": _artists["search"]["adhesive_wombat"]["artist-list"][0]
}
2018-06-09 13:36:16 +00:00
_artists["get"]["soad"] = {
"artist": {
"country": "US",
"isni-list": ["0000000121055332"],
"type": "Group",
"area": {
"iso-3166-1-code-list": ["US"],
"sort-name": "United States",
"id": "489ce91b-6658-3307-9877-795b68554c98",
"name": "United States",
},
2018-06-09 13:36:16 +00:00
"begin-area": {
"sort-name": "Glendale",
"id": "6db2e45d-d7f3-43da-ac0b-7ba5ca627373",
"name": "Glendale",
},
2018-06-09 13:36:16 +00:00
"id": "cc0b7089-c08d-4c10-b6b0-873582c17fd6",
"life-span": {"begin": "1994"},
"sort-name": "System of a Down",
"name": "System of a Down",
}
}
2018-06-09 13:36:16 +00:00
_albums = {"search": {}, "get": {}, "get_with_includes": {}}
_albums["search"]["hypnotize"] = {
"release-list": [
{
"artist-credit": [
{
"artist": {
"alias-list": [
{
"alias": "SoaD",
"sort-name": "SoaD",
2018-06-09 13:36:16 +00:00
"type": "Search hint",
},
{
"alias": "S.O.A.D.",
"sort-name": "S.O.A.D.",
2018-06-09 13:36:16 +00:00
"type": "Search hint",
},
{
"alias": "System Of Down",
"sort-name": "System Of Down",
2018-06-09 13:36:16 +00:00
"type": "Search hint",
},
],
"id": "cc0b7089-c08d-4c10-b6b0-873582c17fd6",
"name": "System of a Down",
2018-06-09 13:36:16 +00:00
"sort-name": "System of a Down",
}
}
],
"artist-credit-phrase": "System of a Down",
"barcode": "",
"country": "US",
"date": "2005",
"ext:score": "100",
"id": "47ae093f-1607-49a3-be11-a15d335ccc94",
"label-info-list": [
{
"catalog-number": "8-2796-93871-2",
"label": {
"id": "f5be9cfe-e1af-405c-a074-caeaed6797c0",
2018-06-09 13:36:16 +00:00
"name": "American Recordings",
},
},
{
"catalog-number": "D162990",
"label": {
"id": "9a7d39a4-a887-40f3-a645-a9a136d1f13f",
2018-06-09 13:36:16 +00:00
"name": "BMG Direct Marketing, Inc.",
},
},
],
"medium-count": 1,
"medium-list": [
{
"disc-count": 1,
"disc-list": [],
"format": "CD",
"track-count": 12,
2018-06-09 13:36:16 +00:00
"track-list": [],
}
],
"medium-track-count": 12,
"packaging": "Digipak",
"release-event-list": [
{
"area": {
"id": "489ce91b-6658-3307-9877-795b68554c98",
2018-06-09 13:36:16 +00:00
"iso-3166-1-code-list": ["US"],
"name": "United States",
2018-06-09 13:36:16 +00:00
"sort-name": "United States",
},
2018-06-09 13:36:16 +00:00
"date": "2005",
}
],
"release-group": {
"id": "72035143-d6ec-308b-8ee5-070b8703902a",
"primary-type": "Album",
2018-06-09 13:36:16 +00:00
"type": "Album",
},
"status": "Official",
2018-06-09 13:36:16 +00:00
"text-representation": {"language": "eng", "script": "Latn"},
"title": "Hypnotize",
},
{
"artist-credit": [
{
"artist": {
"alias-list": [
{
"alias": "SoaD",
"sort-name": "SoaD",
2018-06-09 13:36:16 +00:00
"type": "Search hint",
},
{
"alias": "S.O.A.D.",
"sort-name": "S.O.A.D.",
2018-06-09 13:36:16 +00:00
"type": "Search hint",
},
{
"alias": "System Of Down",
"sort-name": "System Of Down",
2018-06-09 13:36:16 +00:00
"type": "Search hint",
},
],
"id": "cc0b7089-c08d-4c10-b6b0-873582c17fd6",
"name": "System of a Down",
2018-06-09 13:36:16 +00:00
"sort-name": "System of a Down",
}
}
],
"artist-credit-phrase": "System of a Down",
"asin": "B000C6NRY8",
"barcode": "827969387115",
"country": "US",
"date": "2005-12-20",
"ext:score": "100",
"id": "8a4034a9-7834-3b7e-a6f0-d0791e3731fb",
"medium-count": 1,
"medium-list": [
{
"disc-count": 0,
"disc-list": [],
"format": "Vinyl",
"track-count": 12,
2018-06-09 13:36:16 +00:00
"track-list": [],
}
],
"medium-track-count": 12,
"release-event-list": [
{
"area": {
"id": "489ce91b-6658-3307-9877-795b68554c98",
2018-06-09 13:36:16 +00:00
"iso-3166-1-code-list": ["US"],
"name": "United States",
2018-06-09 13:36:16 +00:00
"sort-name": "United States",
},
2018-06-09 13:36:16 +00:00
"date": "2005-12-20",
}
],
"release-group": {
"id": "72035143-d6ec-308b-8ee5-070b8703902a",
"primary-type": "Album",
2018-06-09 13:36:16 +00:00
"type": "Album",
},
"status": "Official",
2018-06-09 13:36:16 +00:00
"text-representation": {"language": "eng", "script": "Latn"},
"title": "Hypnotize",
},
]
}
2018-06-09 13:36:16 +00:00
_albums["get"]["hypnotize"] = {
"release": _albums["search"]["hypnotize"]["release-list"][0]
}
_albums["get_with_includes"]["hypnotize"] = {
"release": {
"artist-credit": [
{
"artist": {
"id": "cc0b7089-c08d-4c10-b6b0-873582c17fd6",
"name": "System of a Down",
"sort-name": "System of a Down",
}
}
],
"artist-credit-phrase": "System of a Down",
"barcode": "",
"country": "US",
"cover-art-archive": {
"artwork": "true",
"back": "false",
"count": "1",
"front": "true",
},
"date": "2005",
"id": "47ae093f-1607-49a3-be11-a15d335ccc94",
"medium-count": 1,
"medium-list": [
{
"format": "CD",
"position": "1",
"track-count": 12,
"track-list": [
{
"id": "59f5cf9a-75b2-3aa3-abda-6807a87107b3",
"length": "186000",
"number": "1",
"position": "1",
"recording": {
"id": "76d03fc5-758c-48d0-a354-a67de086cc68",
"length": "186000",
"title": "Attack",
},
"track_or_recording_length": "186000",
},
{
"id": "3aaa28c1-12b1-3c2a-b90a-82e09e355608",
"length": "239000",
"number": "2",
"position": "2",
"recording": {
"id": "327543b0-9193-48c5-83c9-01c7b36c8c0a",
"length": "239000",
"title": "Dreaming",
},
"track_or_recording_length": "239000",
},
{
"id": "a34fef19-e637-3436-b7eb-276ff2814d6f",
"length": "147000",
"number": "3",
"position": "3",
"recording": {
"id": "6e27866c-07a1-425d-bb4f-9d9e728db344",
"length": "147000",
"title": "Kill Rock n Roll",
},
"track_or_recording_length": "147000",
},
{
"id": "72a4e5c0-c150-3ba1-9ceb-3ab82648af25",
"length": "189000",
"number": "4",
"position": "4",
"recording": {
"id": "7ff8a67d-c8e2-4b3a-a045-7ad3561d0605",
"length": "189000",
"title": "Hypnotize",
},
"track_or_recording_length": "189000",
},
{
"id": "a748fa6e-b3b7-3b22-89fb-a038ec92ac32",
"length": "178000",
"number": "5",
"position": "5",
"recording": {
"id": "19b6eb6a-0e76-4ef7-b63f-959339dbd5d2",
"length": "178000",
"title": "Stealing Society",
},
"track_or_recording_length": "178000",
},
{
"id": "5c5a8d4e-e21a-317e-a719-6e2dbdefa5d2",
"length": "216000",
"number": "6",
"position": "6",
"recording": {
"id": "c3c2afe1-ee9a-47cb-b3c6-ff8100bc19d5",
"length": "216000",
"title": "Tentative",
},
"track_or_recording_length": "216000",
},
{
"id": "265718ba-787f-3193-947b-3b6fa69ffe96",
"length": "175000",
"number": "7",
"position": "7",
"recording": {
"id": "96f804e1-f600-4faa-95a6-ce597e7db120",
"length": "175000",
"title": "UFig",
},
"title": "U-Fig",
"track_or_recording_length": "175000",
},
{
"id": "cdcf8572-3060-31ca-a72c-1ded81ca1f7a",
"length": "328000",
"number": "8",
"position": "8",
"recording": {
"id": "26ba38f0-b26b-48b7-8e77-226b22a55f79",
"length": "328000",
"title": "Holy Mountains",
},
"track_or_recording_length": "328000",
},
{
"id": "f9f00cb0-5635-3217-a2a0-bd61917eb0df",
"length": "171000",
"number": "9",
"position": "9",
"recording": {
"id": "039f3379-3a69-4e75-a882-df1c4e1608aa",
"length": "171000",
"title": "Vicinity of Obscenity",
},
"track_or_recording_length": "171000",
},
{
"id": "cdd45914-6741-353e-bbb5-d281048ff24f",
"length": "164000",
"number": "10",
"position": "10",
"recording": {
"id": "c24d541a-a9a8-4a22-84c6-5e6419459cf8",
"length": "164000",
"title": "Shes Like Heroin",
},
"track_or_recording_length": "164000",
},
{
"id": "cfcf12ac-6831-3dd6-a2eb-9d0bfeee3f6d",
"length": "167000",
"number": "11",
"position": "11",
"recording": {
"id": "0aff4799-849f-4f83-84f4-22cabbba2378",
"length": "167000",
"title": "Lonely Day",
},
"track_or_recording_length": "167000",
},
{
"id": "7e38bb38-ff62-3e41-a670-b7d77f578a1f",
"length": "220000",
"number": "12",
"position": "12",
"recording": {
"id": "e1b4d90f-2f44-4fe6-a826-362d4e3d9b88",
"length": "220000",
"title": "Soldier Side",
},
"track_or_recording_length": "220000",
},
],
}
],
"packaging": "Digipak",
"quality": "normal",
"release-event-count": 1,
"release-event-list": [
{
"area": {
"id": "489ce91b-6658-3307-9877-795b68554c98",
"iso-3166-1-code-list": ["US"],
"name": "United States",
"sort-name": "United States",
},
"date": "2005",
}
],
"status": "Official",
"text-representation": {"language": "eng", "script": "Latn"},
"title": "Hypnotize",
}
}
2018-06-09 13:36:16 +00:00
_albums["get"]["marsupial"] = {
"release": {
"artist-credit": [
{
"artist": {
"disambiguation": "George Shaw",
"id": "62c3befb-6366-4585-b256-809472333801",
"name": "Adhesive Wombat",
2018-06-09 13:36:16 +00:00
"sort-name": "Wombat, Adhesive",
}
}
],
"artist-credit-phrase": "Adhesive Wombat",
"country": "XW",
"cover-art-archive": {
"artwork": "true",
"back": "false",
"count": "1",
2018-06-09 13:36:16 +00:00
"front": "true",
},
"date": "2013-06-05",
"id": "a50d2a81-2a50-484d-9cb4-b9f6833f583e",
"packaging": "None",
"quality": "normal",
"release-event-count": 1,
"release-event-list": [
{
"area": {
"id": "525d4e18-3d00-31b9-a58b-a146a916de8f",
2018-06-09 13:36:16 +00:00
"iso-3166-1-code-list": ["XW"],
"name": "[Worldwide]",
2018-06-09 13:36:16 +00:00
"sort-name": "[Worldwide]",
},
2018-06-09 13:36:16 +00:00
"date": "2013-06-05",
}
],
"status": "Official",
2018-06-09 13:36:16 +00:00
"text-representation": {"language": "eng", "script": "Latn"},
"title": "Marsupial Madness",
}
}
2018-06-09 13:36:16 +00:00
_tracks = {"search": {}, "get": {}}
2018-06-09 13:36:16 +00:00
_tracks["search"]["8bitadventures"] = {
"recording-list": [
{
"artist-credit": [
{
"artist": {
"disambiguation": "George Shaw",
"id": "62c3befb-6366-4585-b256-809472333801",
"name": "Adhesive Wombat",
2018-06-09 13:36:16 +00:00
"sort-name": "Wombat, Adhesive",
}
}
],
"artist-credit-phrase": "Adhesive Wombat",
"ext:score": "100",
"id": "9968a9d6-8d92-4051-8f76-674e157b6eed",
"length": "271000",
"release-list": [
{
"country": "XW",
"date": "2013-06-05",
"id": "a50d2a81-2a50-484d-9cb4-b9f6833f583e",
"medium-list": [
{
"format": "Digital Media",
"position": "1",
"track-count": 11,
"track-list": [
{
"id": "64d43604-c1ee-4f45-a02c-030672d2fe27",
"length": "271000",
"number": "1",
"title": "8-Bit Adventure",
2018-06-09 13:36:16 +00:00
"track_or_recording_length": "271000",
}
2018-06-09 13:36:16 +00:00
],
}
],
"medium-track-count": 11,
"release-event-list": [
{
"area": {
"id": "525d4e18-3d00-31b9-a58b-a146a916de8f",
2018-06-09 13:36:16 +00:00
"iso-3166-1-code-list": ["XW"],
"name": "[Worldwide]",
2018-06-09 13:36:16 +00:00
"sort-name": "[Worldwide]",
},
2018-06-09 13:36:16 +00:00
"date": "2013-06-05",
}
],
"release-group": {
"id": "447b4979-2178-405c-bfe6-46bf0b09e6c7",
"primary-type": "Album",
2018-06-09 13:36:16 +00:00
"type": "Album",
},
"status": "Official",
2018-06-09 13:36:16 +00:00
"title": "Marsupial Madness",
}
],
"title": "8-Bit Adventure",
"tag-list": [
2018-06-09 13:36:16 +00:00
{"count": "2", "name": "techno"},
{"count": "2", "name": "good-music"},
],
2018-06-09 13:36:16 +00:00
}
]
}
2018-06-09 13:36:16 +00:00
_tracks["get"]["8bitadventures"] = {
"recording": _tracks["search"]["8bitadventures"]["recording-list"][0]
}
_tracks["get"]["chop_suey"] = {
"recording": {
"id": "46c7368a-013a-47b6-97cc-e55e7ab25213",
"length": "210240",
"title": "Chop Suey!",
"work-relation-list": [
{
"target": "e2ecabc4-1b9d-30b2-8f30-3596ec423dc5",
"type": "performance",
"type-id": "a3005666-a872-32c3-ad06-98af558e99b0",
"work": {
"id": "e2ecabc4-1b9d-30b2-8f30-3596ec423dc5",
"language": "eng",
"title": "Chop Suey!",
},
}
],
}
}
2018-06-09 13:36:16 +00:00
_works = {"search": {}, "get": {}}
_works["get"]["chop_suey"] = {
"work": {
"id": "e2ecabc4-1b9d-30b2-8f30-3596ec423dc5",
"language": "eng",
"recording-relation-list": [
{
"direction": "backward",
"recording": {
"disambiguation": "edit",
"id": "07ca77cf-f513-4e9c-b190-d7e24bbad448",
"length": "170893",
"title": "Chop Suey!",
},
"target": "07ca77cf-f513-4e9c-b190-d7e24bbad448",
"type": "performance",
"type-id": "a3005666-a872-32c3-ad06-98af558e99b0",
}
],
"title": "Chop Suey!",
"type": "Song",
"url-relation-list": [
{
"direction": "backward",
"target": "http://lyrics.wikia.com/System_Of_A_Down:Chop_Suey!",
"type": "lyrics",
"type-id": "e38e65aa-75e0-42ba-ace0-072aeb91a538",
}
],
}
}
@pytest.fixture()
def artists():
2018-04-28 16:39:48 +00:00
"""Artists as they would be returned by the Musicbrainz API"""
return _artists
@pytest.fixture()
def albums():
2018-04-28 16:39:48 +00:00
"""Releases as they would be returned by the Musicbrainz API"""
return _albums
@pytest.fixture()
def tracks():
2018-04-28 16:39:48 +00:00
"""Recordings as they would be returned by the Musicbrainz API"""
return _tracks
@pytest.fixture()
def works():
2018-04-28 16:39:48 +00:00
"""Works as they would be returned by the Musicbrainz API"""
return _works
@pytest.fixture()
def lyricswiki_content():
return """<!doctype html>
<html lang="en" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<meta name="generator" content="MediaWiki 1.19.24" />
<meta name="keywords" content="Chop Suey! lyrics,System Of A Down Chop Suey! lyrics,Chop Suey! by System Of A Down lyrics,lyrics,LyricWiki,LyricWikia,lyricwiki,System Of A Down:Chop Suey!,System Of A Down,System Of A Down:Toxicity (2001),Enter Shikari,Enter Shikari:Chop Suey!,&quot;Weird Al&quot; Yankovic,&quot;Weird Al&quot; Yankovic:Angry White Boy Polka,Renard,Renard:Physicality,System Of A Down:Chop Suey!/pt,Daron Malakian" />
<meta name="description" content="Chop Suey! This song is by System of a Down and appears on the album Toxicity (2001)." />
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@Wikia" />
<meta name="twitter:url" content="http://lyrics.wikia.com/wiki/System_Of_A_Down:Chop_Suey!" />
<meta name="twitter:title" content="System Of A Down:Chop Suey! Lyrics - LyricWikia - Wikia" />
<meta name="twitter:description" content="Chop Suey! This song is by System of a Down and appears on the album Toxicity (2001)." />
<link rel="canonical" href="http://lyrics.wikia.com/wiki/System_Of_A_Down:Chop_Suey!" />
<link rel="alternate" type="application/x-wiki" title="Edit" href="/wiki/System_Of_A_Down:Chop_Suey!?action=edit" />
<link rel="edit" title="Edit" href="/wiki/System_Of_A_Down:Chop_Suey!?action=edit" />
<link rel="apple-touch-icon" href="http://img4.wikia.nocookie.net/__cb22/lyricwiki/images/b/bc/Wiki.png" />
<link rel="shortcut icon" href="http://slot1.images.wikia.nocookie.net/__cb1474018633/common/skins/common/images/favicon.ico" />
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch_desc.php" title="LyricWikia (en)" />
<link rel="EditURI" type="application/rsd+xml" href="http://lyrics.wikia.com/api.php?action=rsd" />
<link rel="copyright" href="/wiki/LyricWiki:Copyrights" />
<link rel="alternate" type="application/atom+xml" title="LyricWikia Atom feed" href="/wiki/Special:RecentChanges?feed=atom" />
<title>System Of A Down:Chop Suey! Lyrics - LyricWikia - Wikia</title>
<body>
<div class='lyricbox'>
<i>&#87;&#101;&#39;&#114;&#101;&#32;&#114;&#111;&#108;&#108;&#105;&#110;&#103;&#32;&#34;&#83;&#117;&#105;&#99;&#105;&#100;&#101;&#34;&#46;</i><br /><br />&#87;&#97;&#107;&#101;&#32;&#117;&#112;&#32;<i>&#40;&#119;&#97;&#107;&#101;&#32;&#117;&#112;&#41;</i><br />&#71;&#114;&#97;&#98;&#32;&#97;&#32;&#98;&#114;&#117;&#115;&#104;&#32;&#97;&#110;&#100;&#32;&#112;&#117;&#116;&#32;&#111;&#110;&#32;&#97;&#32;&#108;&#105;&#116;&#116;&#108;&#101;&#32;&#109;&#97;&#107;&#101;&#117;&#112;<br />&#72;&#105;&#100;&#101;&#32;&#116;&#104;&#101;&#32;&#115;&#99;&#97;&#114;&#115;&#32;&#116;&#111;&#32;&#102;&#97;&#100;&#101;&#32;&#97;&#119;&#97;&#121;&#32;&#116;&#104;&#101;&#32;&#115;&#104;&#97;&#107;&#101;&#117;&#112;&#32;<i>&#40;&#104;&#105;&#100;&#101;&#32;&#116;&#104;&#101;&#32;&#115;&#99;&#97;&#114;&#115;&#32;&#116;&#111;&#32;&#102;&#97;&#100;&#101;&#32;&#97;&#119;&#97;&#121;&#32;&#116;&#104;&#101;&#41;</i><br />&#87;&#104;&#121;&#39;&#100;&#32;&#121;&#111;&#117;&#32;&#108;&#101;&#97;&#118;&#101;&#32;&#116;&#104;&#101;&#32;&#107;&#101;&#121;&#115;&#32;&#117;&#112;&#111;&#110;&#32;&#116;&#104;&#101;&#32;&#116;&#97;&#98;&#108;&#101;&#63;<br />&#72;&#101;&#114;&#101;&#32;&#121;&#111;&#117;&#32;&#103;&#111;&#44;&#32;&#99;&#114;&#101;&#97;&#116;&#101;&#32;&#97;&#110;&#111;&#116;&#104;&#101;&#114;&#32;&#102;&#97;&#98;&#108;&#101;<br /><br />&#89;&#111;&#117;&#32;&#119;&#97;&#110;&#116;&#101;&#100;&#32;&#116;&#111;<br />&#71;&#114;&#97;&#98;&#32;&#97;&#32;&#98;&#114;&#117;&#115;&#104;&#32;&#97;&#110;&#100;&#32;&#112;&#117;&#116;&#32;&#97;&#32;&#108;&#105;&#116;&#116;&#108;&#101;&#32;&#109;&#97;&#107;&#101;&#117;&#112;<br />&#89;&#111;&#117;&#32;&#119;&#97;&#110;&#116;&#101;&#100;&#32;&#116;&#111;<br />&#72;&#105;&#100;&#101;&#32;&#116;&#104;&#101;&#32;&#115;&#99;&#97;&#114;&#115;&#32;&#116;&#111;&#32;&#102;&#97;&#100;&#101;&#32;&#97;&#119;&#97;&#121;&#32;&#116;&#104;&#101;&#32;&#115;&#104;&#97;&#107;&#101;&#117;&#112;<br />&#89;&#111;&#117;&#32;&#119;&#97;&#110;&#116;&#101;&#100;&#32;&#116;&#111;<br />&#87;&#104;&#121;&#39;&#100;&#32;&#121;&#111;&#117;&#32;&#108;&#101;&#97;&#118;&#101;&#32;&#116;&#104;&#101;&#32;&#107;&#101;&#121;&#115;&#32;&#117;&#112;&#111;&#110;&#32;&#116;&#104;&#101;&#32;&#116;&#97;&#98;&#108;&#101;&#63;<br />&#89;&#111;&#117;&#32;&#119;&#97;&#110;&#116;&#101;&#100;&#32;&#116;&#111;<br /><br />&#73;&#32;&#100;&#111;&#110;&#39;&#116;&#32;&#116;&#104;&#105;&#110;&#107;&#32;&#121;&#111;&#117;&#32;&#116;&#114;&#117;&#115;&#116;<br />&#73;&#110;&#32;&#109;&#121;&#32;&#115;&#101;&#108;&#102;&#45;&#114;&#105;&#103;&#104;&#116;&#101;&#111;&#117;&#115;&#32;&#115;&#117;&#105;&#99;&#105;&#100;&#101;<br />&#73;&#32;&#99;&#114;&#121;&#32;&#119;&#104;&#101;&#110;&#32;&#97;&#110;&#103;&#101;&#108;&#115;&#32;&#100;&#101;&#115;&#101;&#114;&#118;&#101;&#32;&#116;&#111;&#32;&#100;&#105;&#101;<br /><br />&#87;&#97;&#107;&#101;&#32;&#117;&#112;&#32;<i>&#40;&#119;&#97;&#107;&#101;&#32;&#117;&#112;&#41;</i><br />&#71;&#114;&#97;&#98;&#32;&#97;&#32;&#98;&#114;&#117;&#115;&#104;&#32;&#97;&#110;&#100;&#32;&#112;&#117;&#116;&#32;&#111;&#110;&#32;&#97;&#32;&#108;&#105;&#116;&#116;&#108;&#101;&#32;&#109;&#97;&#107;&#101;&#117;&#112;<br />&#72;&#105;&#100;&#101;&#32;&#116;&#104;&#101;&#32;&#115;&#99;&#97;&#114;&#115;&#32;&#116;&#111;&#32;&#102;&#97;&#100;&#101;&#32;&#97;&#119;&#97;&#121;&#32;&#116;&#104;&#101;&#32;<i>&#40;&#104;&#105;&#100;&#101;&#32;&#116;&#104;&#101;&#32;&#115;&#99;&#97;&#114;&#115;&#32;&#116;&#111;&#32;&#102;&#97;&#100;&#101;&#32;&#97;&#119;&#97;&#121;&#32;&#116;&#104;&#101;&#41;</i><br />&#87;&#104;&#121;&#39;&#100;&#32;&#121;&#111;&#117;&#32;&#108;&#101;&#97;&#118;&#101;&#32;&#116;&#104;&#101;&#32;&#107;&#101;&#121;&#115;&#32;&#117;&#112;&#111;&#110;&#32;&#116;&#104;&#101;&#32;&#116;&#97;&#98;&#108;&#101;&#63;<br />&#72;&#101;&#114;&#101;&#32;&#121;&#111;&#117;&#32;&#103;&#111;&#44;&#32;&#99;&#114;&#101;&#97;&#116;&#101;&#32;&#97;&#110;&#111;&#116;&#104;&#101;&#114;&#32;&#102;&#97;&#98;&#108;&#101;<br /><br />&#89;&#111;&#117;&#32;&#119;&#97;&#110;&#116;&#101;&#100;&#32;&#116;&#111;<br />&#71;&#114;&#97;&#98;&#32;&#97;&#32;&#98;&#1
</div>
</body>
</html>"""
@pytest.fixture()
def binary_cover():
2018-04-28 16:39:48 +00:00
"""
Return an album cover image in form of a binary string
"""
2018-06-09 13:36:16 +00:00
return b"\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x02\x01\x00H\x00H\x00\x00\xff\xed\x08\xaePhotoshop 3.0\x008BIM\x03\xe9\x00\x00\x00\x00\x00x\x00\x03\x00\x00\x00H\x00H\x00\x00\x00\x00\x02\xd8\x02(\xff\xe1\xff\xe2\x02\xf9\x02F\x03G\x05(\x03\xfc\x00\x02\x00\x00\x00H\x00H\x00\x00\x00\x00\x02\xd8\x02(\x00\x01\x00\x00\x00d\x00\x00\x00\x01\x00\x03\x03\x03\x00\x00\x00\x01'\x0f\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00`\x08\x00\x19\x01\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x008BIM\x03\xed\x00\x00\x00\x00\x00\x10\x00H\x00\x00\x00\x01\x00\x01\x00H\x00\x00\x00\x01\x00\x018BIM\x03\xf3\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x008BIM\x04\n\x00\x00\x00\x00\x00\x01\x00\x008BIM'\x10\x00\x00\x00\x00\x00\n\x00\x01\x00\x00\x00\x00\x00\x00\x00\x028BIM\x03\xf5\x00\x00\x00\x00\x00H\x00/ff\x00\x01\x00lff\x00\x06\x00\x00\x00\x00\x00\x01\x00/ff\x00\x01\x00\xa1\x99\x9a\x00\x06\x00\x00\x00\x00\x00\x01\x002\x00\x00\x00\x01\x00Z\x00\x00\x00\x06\x00\x00\x00\x00\x00\x01\x005\x00\x00\x00\x01\x00-\x00\x00\x00\x06\x00\x00\x00\x00\x00\x018BIM\x03\xf8\x00\x00\x00\x00\x00p\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\xe8\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\xe8\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\xe8\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\xe8\x00\x008BIM\x04\x00\x00\x00\x00\x00\x00\x02\x00\x018BIM\x04\x02\x00\x00\x00\x00\x00\x04\x00\x00\x00\x008BIM\x04\x08\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x02@\x00\x00\x02@\x00\x00\x00\x008BIM\x04\t\x00\x00\x00\x00\x06\x9b\x00\x00\x00\x01\x00\x00\x00\x80\x00\x00\x00\x80\x00\x00\x01\x80\x00\x00\xc0\x00\x00\x00\x06\x7f\x00\x18\x00\x01\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x02\x01\x00H\x00H\x00\x00\xff\xfe\x00'File written by Adobe Photoshop\xa8 4.0\x00\xff\xee\x00\x0eAdobe\x00d\x80\x00\x00\x00\x01\xff\xdb\x00\x84\x00\x0c\x08\x08\x08\t\x08\x0c\t\t\x0c\x11\x0b\n\x0b\x11\x15\x0f\x0c\x0c\x0f\x15\x18\x13\x13\x15\x13\x13\x18\x11\x0c\x0c\x0c\x0c\x0c\x0c\x11\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x01\r\x0b\x0b\r\x0e\r\x10\x0e\x0e\x10\x14\x0e\x0e\x0e\x14\x14\x0e\x0e\x0e\x0e\x14\x11\x0c\x0c\x0c\x0c\x0c\x11\x11\x0c\x0c\x0c\x0c\x0c\x0c\x11\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xff\xc0\x00\x11\x08\x00\x80\x00\x80\x03\x01\"\x00\x02\x11\x01\x03\x11\x01\xff\xdd\x00\x04\x00\x08\xff\xc4\x01?\x00\x00\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x01\x02\x04\x05\x06\x07\x08\t\n\x0b\x01\x00\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x10\x00\x01\x04\x01\x03\x02\x04\x02\x05\x07\x06\x08\x05\x03\x0c3\x01\x00\x02\x11\x03\x04!\x121\x05AQa\x13\"q\x812\x06\x14\x91\xa1\xb1B#$\x15R\xc1b34r\x82\xd1C\x07%\x92S\xf0\xe1\xf1cs5\x16\xa2\xb2\x83&D\x93TdE\xc2\xa3t6\x17\xd2U\xe2e\xf2\xb3\x84\xc3\xd3u\xe3\xf3F'\x94\xa4\x85\xb4\x95\xc4\xd4\xe4\xf4\xa5\xb5\xc5\xd5\xe5\xf5Vfv\x86\x96\xa6\xb6\xc6\xd6\xe6\xf67GWgw\x87\x97\xa7\xb7\xc7\xd7\xe7\xf7\x11\x00\x02\x02\x01\x02\x04\x04\x03\x04\x05\x06\x07\x07\x06\x055\x01\x00\x02\x11\x03!1\x12\x04AQaq\"\x13\x052\x81\x91\x14\xa1\xb1B#\xc1R\xd1\xf03$b\xe1r\x82\x92CS\x15cs4\xf1%\x06\x16\xa2\xb2\x83\x07&5\xc2\xd2D\x93T\xa3\x17dEU6te\xe2\xf2\xb3\x84\xc3\xd3u\xe3\xf3F\x94\xa4\x85\xb4\x95\xc4\xd4\xe4\xf4\xa5\xb5\xc5\xd5\xe5\xf5Vfv\x86\x96\xa6\xb6\xc6\xd6\xe6\xf6'7GWgw\x87\x97\xa7\xb7\xc7\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00?\x00\xf5T\x92I%)$\x92IJI$\x92R\x92I$\x94\xa4\x92I%)$\x92IJI$\x92R\x92I$\x94\xff\x00\xff\xd0\xf5T\x92I%)$\x92IJI%\xe7\xff\x00Z\x7f\xc6\xbf\xfc\xde\xeb\xb9]\x1f\xf6_\xda~\xcd\xe9\xfe\x9b\xed\x1e\x9e\xefR\xba\xef\xfeo\xec\xf6\xed\xdb\xea\xec\xfeq%>\x80\x92\xf2\xaf\xfc}?\xf3I\xff\x00\xb3_\