/
/
/
1# serializer version: 1
2# name: test_lyrics[lyrics.lyrics]
3 dict({
4 'album': dict({
5 'available': True,
6 'external_ids': list([
7 ]),
8 'image': None,
9 'is_playable': True,
10 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
11 'media_type': 'album',
12 'name': 'Live at The Casbah - 2005-04-29',
13 'provider': 'xx-instance-id-xx',
14 'sort_name': 'live at the casbah - 2005-04-29',
15 'translation_key': None,
16 'uri': 'xx-instance-id-xx://album/e8a0685e3f3ec6f251649af2b58b8617',
17 'version': '',
18 'year': None,
19 }),
20 'artists': list([
21 dict({
22 'available': True,
23 'external_ids': list([
24 ]),
25 'image': None,
26 'is_playable': True,
27 'item_id': '97e0398acf63f9fb930d7d4ce209a52b',
28 'media_type': 'artist',
29 'name': 'The New Deal',
30 'provider': 'xx-instance-id-xx',
31 'sort_name': 'new deal, the',
32 'translation_key': None,
33 'uri': 'xx-instance-id-xx://artist/97e0398acf63f9fb930d7d4ce209a52b',
34 'version': '',
35 'year': None,
36 }),
37 dict({
38 'available': True,
39 'external_ids': list([
40 ]),
41 'image': None,
42 'is_playable': True,
43 'item_id': 'ar-1',
44 'media_type': 'artist',
45 'name': 'Artist 1',
46 'provider': 'xx-instance-id-xx',
47 'sort_name': 'artist 1',
48 'translation_key': None,
49 'uri': 'xx-instance-id-xx://artist/ar-1',
50 'version': '',
51 'year': None,
52 }),
53 dict({
54 'available': True,
55 'external_ids': list([
56 ]),
57 'image': None,
58 'is_playable': True,
59 'item_id': 'ar-2',
60 'media_type': 'artist',
61 'name': 'Artist 2',
62 'provider': 'xx-instance-id-xx',
63 'sort_name': 'artist 2',
64 'translation_key': None,
65 'uri': 'xx-instance-id-xx://artist/ar-2',
66 'version': '',
67 'year': None,
68 }),
69 ]),
70 'audio_metadata': None,
71 'date_added': None,
72 'disc_number': 1,
73 'duration': 178,
74 'external_ids': list([
75 list([
76 'musicbrainz_recordingid',
77 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
78 ]),
79 ]),
80 'favorite': True,
81 'is_playable': True,
82 'item_id': '082f435a363c32c57d5edb6a678a28d4',
83 'last_played': 0,
84 'media_type': 'track',
85 'metadata': dict({
86 'artist_entity_type': None,
87 'chapters': None,
88 'collections': None,
89 'copyright': None,
90 'description': None,
91 'description_language': None,
92 'explicit': True,
93 'genres': list([
94 'East coast',
95 'Hip-Hop',
96 ]),
97 'grouping': None,
98 'has_transcript': None,
99 'images': list([
100 dict({
101 'path': 'mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce',
102 'provider': 'xx-instance-id-xx',
103 'proxy_id': None,
104 'remotely_accessible': False,
105 'type': 'thumb',
106 }),
107 ]),
108 'label': None,
109 'languages': None,
110 'last_refresh': None,
111 'life_span': None,
112 'links': None,
113 'lrc_lyrics': None,
114 'lyrics': '''
115 Let us have peace, let us have life
116 Let us escape the cruel night
117 Let us have time, let the sun shine
118 Let us beware the deadly sign
119 The day is coming
120 Armageddon's near
121 Inferno's coming
122 Can we survive the blitzkrieg?
123 The blitzkrieg
124 The blitzkrieg
125 Save us from fate, save us from hate
126 Save ourselves before it's too late
127 Come to our need, hear our plea
128 Save ourselves before the earth bleeds
129 The day is dawning
130 The time is near
131 Aliens calling
132 Can we survive the blitzkrieg?
133 ''',
134 'mood': 'slow',
135 'performers': list([
136 'Artist 3',
137 'Artist 4',
138 'Artist 5',
139 ]),
140 'popularity': None,
141 'preview': None,
142 'release_date': None,
143 'review': None,
144 'style': None,
145 'transcript': None,
146 'transcript_cues': None,
147 }),
148 'name': '"polar expedition"',
149 'position': None,
150 'provider': 'xx-instance-id-xx',
151 'provider_mappings': list([
152 dict({
153 'audio_format': dict({
154 'bit_depth': 16,
155 'bit_rate': 880,
156 'channels': 2,
157 'codec_type': '?',
158 'content_type': 'flac',
159 'output_format_str': 'flac',
160 'sample_rate': 44100,
161 }),
162 'available': True,
163 'details': None,
164 'in_library': None,
165 'is_unique': None,
166 'item_id': '082f435a363c32c57d5edb6a678a28d4',
167 'provider_domain': 'opensubsonic',
168 'provider_instance': 'xx-instance-id-xx',
169 'url': None,
170 }),
171 ]),
172 'sort_name': 'Polar expedition',
173 'track_number': 4,
174 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
175 'version': '',
176 })
177# ---
178# name: test_parse_albums[no-artist.album]
179 dict({
180 'album_type': 'unknown',
181 'artists': list([
182 dict({
183 'artist_type': 'singer',
184 'date_added': None,
185 'external_ids': list([
186 ]),
187 'favorite': False,
188 'is_playable': True,
189 'item_id': 'fake_artist_unknown',
190 'media_type': 'artist',
191 'metadata': dict({
192 'artist_entity_type': None,
193 'chapters': None,
194 'collections': None,
195 'copyright': None,
196 'description': None,
197 'description_language': None,
198 'explicit': None,
199 'genres': None,
200 'grouping': None,
201 'has_transcript': None,
202 'images': None,
203 'label': None,
204 'languages': None,
205 'last_refresh': None,
206 'life_span': None,
207 'links': None,
208 'lrc_lyrics': None,
209 'lyrics': None,
210 'mood': None,
211 'performers': None,
212 'popularity': None,
213 'preview': None,
214 'release_date': None,
215 'review': None,
216 'style': None,
217 'transcript': None,
218 'transcript_cues': None,
219 }),
220 'name': '[unknown]',
221 'position': None,
222 'provider': 'xx-instance-id-xx',
223 'provider_mappings': list([
224 dict({
225 'audio_format': dict({
226 'bit_depth': 16,
227 'bit_rate': 0,
228 'channels': 2,
229 'codec_type': '?',
230 'content_type': '?',
231 'output_format_str': '?',
232 'sample_rate': 44100,
233 }),
234 'available': True,
235 'details': None,
236 'in_library': None,
237 'is_unique': None,
238 'item_id': 'fake_artist_unknown',
239 'provider_domain': 'opensubsonic',
240 'provider_instance': 'xx-instance-id-xx',
241 'url': None,
242 }),
243 ]),
244 'sort_name': 'unknown]',
245 'uri': 'xx-instance-id-xx://artist/fake_artist_unknown',
246 'version': '',
247 }),
248 ]),
249 'date_added': None,
250 'external_ids': list([
251 list([
252 'musicbrainz_albumid',
253 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
254 ]),
255 ]),
256 'favorite': True,
257 'is_playable': True,
258 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
259 'media_type': 'album',
260 'metadata': dict({
261 'artist_entity_type': None,
262 'chapters': None,
263 'collections': None,
264 'copyright': None,
265 'description': None,
266 'description_language': None,
267 'explicit': None,
268 'genres': list([
269 'East coast',
270 'Hip-Hop',
271 ]),
272 'grouping': None,
273 'has_transcript': None,
274 'images': list([
275 dict({
276 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
277 'provider': 'xx-instance-id-xx',
278 'proxy_id': None,
279 'remotely_accessible': False,
280 'type': 'thumb',
281 }),
282 ]),
283 'label': None,
284 'languages': None,
285 'last_refresh': None,
286 'life_span': None,
287 'links': None,
288 'lrc_lyrics': None,
289 'lyrics': None,
290 'mood': 'slow',
291 'performers': None,
292 'popularity': None,
293 'preview': None,
294 'release_date': None,
295 'review': None,
296 'style': None,
297 'transcript': None,
298 'transcript_cues': None,
299 }),
300 'name': '8-bit lagerfeuer',
301 'position': None,
302 'provider': 'opensubsonic',
303 'provider_mappings': list([
304 dict({
305 'audio_format': dict({
306 'bit_depth': 16,
307 'bit_rate': 0,
308 'channels': 2,
309 'codec_type': '?',
310 'content_type': '?',
311 'output_format_str': '?',
312 'sample_rate': 44100,
313 }),
314 'available': True,
315 'details': None,
316 'in_library': None,
317 'is_unique': None,
318 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
319 'provider_domain': 'opensubsonic',
320 'provider_instance': 'xx-instance-id-xx',
321 'url': None,
322 }),
323 ]),
324 'sort_name': 'lagerfeuer (8-bit)',
325 'uri': 'opensubsonic://album/ad0f112b6dcf83de5e9cae85d07f0d35',
326 'version': '',
327 'year': 2007,
328 })
329# ---
330# name: test_parse_albums[no-artist.album].1
331 dict({
332 'album_type': 'unknown',
333 'artists': list([
334 dict({
335 'artist_type': 'singer',
336 'date_added': None,
337 'external_ids': list([
338 ]),
339 'favorite': False,
340 'is_playable': True,
341 'item_id': 'fake_artist_unknown',
342 'media_type': 'artist',
343 'metadata': dict({
344 'artist_entity_type': None,
345 'chapters': None,
346 'collections': None,
347 'copyright': None,
348 'description': None,
349 'description_language': None,
350 'explicit': None,
351 'genres': None,
352 'grouping': None,
353 'has_transcript': None,
354 'images': None,
355 'label': None,
356 'languages': None,
357 'last_refresh': None,
358 'life_span': None,
359 'links': None,
360 'lrc_lyrics': None,
361 'lyrics': None,
362 'mood': None,
363 'performers': None,
364 'popularity': None,
365 'preview': None,
366 'release_date': None,
367 'review': None,
368 'style': None,
369 'transcript': None,
370 'transcript_cues': None,
371 }),
372 'name': '[unknown]',
373 'position': None,
374 'provider': 'xx-instance-id-xx',
375 'provider_mappings': list([
376 dict({
377 'audio_format': dict({
378 'bit_depth': 16,
379 'bit_rate': 0,
380 'channels': 2,
381 'codec_type': '?',
382 'content_type': '?',
383 'output_format_str': '?',
384 'sample_rate': 44100,
385 }),
386 'available': True,
387 'details': None,
388 'in_library': None,
389 'is_unique': None,
390 'item_id': 'fake_artist_unknown',
391 'provider_domain': 'opensubsonic',
392 'provider_instance': 'xx-instance-id-xx',
393 'url': None,
394 }),
395 ]),
396 'sort_name': 'unknown]',
397 'uri': 'xx-instance-id-xx://artist/fake_artist_unknown',
398 'version': '',
399 }),
400 ]),
401 'date_added': None,
402 'external_ids': list([
403 list([
404 'musicbrainz_albumid',
405 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
406 ]),
407 ]),
408 'favorite': True,
409 'is_playable': True,
410 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
411 'media_type': 'album',
412 'metadata': dict({
413 'artist_entity_type': None,
414 'chapters': None,
415 'collections': None,
416 'copyright': None,
417 'description': 'Download the full release here (creative commons). These cripsy beats are ripe with thumping funk and techno influences, sample wizardry and daring shuffles. Composed with the help of unique sound plugins which were especially programmed to measure Comfort Fit’s needs and wishes, we think the chances aren’t bad that you’ll fall for the unique sound signature, bounce and elegance of this unusual Hip Hop production. Ltj bukem / Good looking Rec., UK: "Really love this music." Velanche / XLR8R, UK: "Awesome job he\'s done... overall production is dope." Kwesi / BBE Music, UK: "Wooooooowwwww... WHAT THE FUCK! THIS IS WHAT',
418 'description_language': None,
419 'explicit': None,
420 'genres': list([
421 'East coast',
422 'Hip-Hop',
423 ]),
424 'grouping': None,
425 'has_transcript': None,
426 'images': list([
427 dict({
428 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
429 'provider': 'xx-instance-id-xx',
430 'proxy_id': None,
431 'remotely_accessible': False,
432 'type': 'thumb',
433 }),
434 dict({
435 'path': 'http://localhost:8989/play/art/0f8c3cbd6b0b22c3b5402141351ac812/album/21/thumb34.jpg',
436 'provider': 'xx-instance-id-xx',
437 'proxy_id': None,
438 'remotely_accessible': True,
439 'type': 'thumb',
440 }),
441 ]),
442 'label': None,
443 'languages': None,
444 'last_refresh': None,
445 'life_span': None,
446 'links': None,
447 'lrc_lyrics': None,
448 'lyrics': None,
449 'mood': 'slow',
450 'performers': None,
451 'popularity': None,
452 'preview': None,
453 'release_date': None,
454 'review': None,
455 'style': None,
456 'transcript': None,
457 'transcript_cues': None,
458 }),
459 'name': '8-bit lagerfeuer',
460 'position': None,
461 'provider': 'opensubsonic',
462 'provider_mappings': list([
463 dict({
464 'audio_format': dict({
465 'bit_depth': 16,
466 'bit_rate': 0,
467 'channels': 2,
468 'codec_type': '?',
469 'content_type': '?',
470 'output_format_str': '?',
471 'sample_rate': 44100,
472 }),
473 'available': True,
474 'details': None,
475 'in_library': None,
476 'is_unique': None,
477 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
478 'provider_domain': 'opensubsonic',
479 'provider_instance': 'xx-instance-id-xx',
480 'url': None,
481 }),
482 ]),
483 'sort_name': 'lagerfeuer (8-bit)',
484 'uri': 'opensubsonic://album/ad0f112b6dcf83de5e9cae85d07f0d35',
485 'version': '',
486 'year': 2007,
487 })
488# ---
489# name: test_parse_albums[no-version.album]
490 dict({
491 'album_type': 'unknown',
492 'artists': list([
493 dict({
494 'available': True,
495 'external_ids': list([
496 ]),
497 'image': None,
498 'is_playable': True,
499 'item_id': '91c3901ac465b9efc439e4be4270c2b6',
500 'media_type': 'artist',
501 'name': 'pornophonique',
502 'provider': 'xx-instance-id-xx',
503 'sort_name': 'pornophonique',
504 'translation_key': None,
505 'uri': 'xx-instance-id-xx://artist/91c3901ac465b9efc439e4be4270c2b6',
506 'version': '',
507 'year': None,
508 }),
509 dict({
510 'available': True,
511 'external_ids': list([
512 ]),
513 'image': None,
514 'is_playable': True,
515 'item_id': 'ar-1',
516 'media_type': 'artist',
517 'name': 'Artist 1',
518 'provider': 'xx-instance-id-xx',
519 'sort_name': 'artist 1',
520 'translation_key': None,
521 'uri': 'xx-instance-id-xx://artist/ar-1',
522 'version': '',
523 'year': None,
524 }),
525 dict({
526 'available': True,
527 'external_ids': list([
528 ]),
529 'image': None,
530 'is_playable': True,
531 'item_id': 'ar-2',
532 'media_type': 'artist',
533 'name': 'Artist 2',
534 'provider': 'xx-instance-id-xx',
535 'sort_name': 'artist 2',
536 'translation_key': None,
537 'uri': 'xx-instance-id-xx://artist/ar-2',
538 'version': '',
539 'year': None,
540 }),
541 ]),
542 'date_added': None,
543 'external_ids': list([
544 list([
545 'musicbrainz_albumid',
546 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
547 ]),
548 ]),
549 'favorite': True,
550 'is_playable': True,
551 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
552 'media_type': 'album',
553 'metadata': dict({
554 'artist_entity_type': None,
555 'chapters': None,
556 'collections': None,
557 'copyright': None,
558 'description': None,
559 'description_language': None,
560 'explicit': None,
561 'genres': list([
562 'East coast',
563 'Hip-Hop',
564 ]),
565 'grouping': None,
566 'has_transcript': None,
567 'images': list([
568 dict({
569 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
570 'provider': 'xx-instance-id-xx',
571 'proxy_id': None,
572 'remotely_accessible': False,
573 'type': 'thumb',
574 }),
575 ]),
576 'label': None,
577 'languages': None,
578 'last_refresh': None,
579 'life_span': None,
580 'links': None,
581 'lrc_lyrics': None,
582 'lyrics': None,
583 'mood': 'slow',
584 'performers': None,
585 'popularity': None,
586 'preview': None,
587 'release_date': None,
588 'review': None,
589 'style': None,
590 'transcript': None,
591 'transcript_cues': None,
592 }),
593 'name': '8-bit lagerfeuer',
594 'position': None,
595 'provider': 'opensubsonic',
596 'provider_mappings': list([
597 dict({
598 'audio_format': dict({
599 'bit_depth': 16,
600 'bit_rate': 0,
601 'channels': 2,
602 'codec_type': '?',
603 'content_type': '?',
604 'output_format_str': '?',
605 'sample_rate': 44100,
606 }),
607 'available': True,
608 'details': None,
609 'in_library': None,
610 'is_unique': None,
611 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
612 'provider_domain': 'opensubsonic',
613 'provider_instance': 'xx-instance-id-xx',
614 'url': None,
615 }),
616 ]),
617 'sort_name': 'lagerfeuer (8-bit)',
618 'uri': 'opensubsonic://album/ad0f112b6dcf83de5e9cae85d07f0d35',
619 'version': '',
620 'year': 2007,
621 })
622# ---
623# name: test_parse_albums[no-version.album].1
624 dict({
625 'album_type': 'unknown',
626 'artists': list([
627 dict({
628 'available': True,
629 'external_ids': list([
630 ]),
631 'image': None,
632 'is_playable': True,
633 'item_id': '91c3901ac465b9efc439e4be4270c2b6',
634 'media_type': 'artist',
635 'name': 'pornophonique',
636 'provider': 'xx-instance-id-xx',
637 'sort_name': 'pornophonique',
638 'translation_key': None,
639 'uri': 'xx-instance-id-xx://artist/91c3901ac465b9efc439e4be4270c2b6',
640 'version': '',
641 'year': None,
642 }),
643 dict({
644 'available': True,
645 'external_ids': list([
646 ]),
647 'image': None,
648 'is_playable': True,
649 'item_id': 'ar-1',
650 'media_type': 'artist',
651 'name': 'Artist 1',
652 'provider': 'xx-instance-id-xx',
653 'sort_name': 'artist 1',
654 'translation_key': None,
655 'uri': 'xx-instance-id-xx://artist/ar-1',
656 'version': '',
657 'year': None,
658 }),
659 dict({
660 'available': True,
661 'external_ids': list([
662 ]),
663 'image': None,
664 'is_playable': True,
665 'item_id': 'ar-2',
666 'media_type': 'artist',
667 'name': 'Artist 2',
668 'provider': 'xx-instance-id-xx',
669 'sort_name': 'artist 2',
670 'translation_key': None,
671 'uri': 'xx-instance-id-xx://artist/ar-2',
672 'version': '',
673 'year': None,
674 }),
675 ]),
676 'date_added': None,
677 'external_ids': list([
678 list([
679 'musicbrainz_albumid',
680 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
681 ]),
682 ]),
683 'favorite': True,
684 'is_playable': True,
685 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
686 'media_type': 'album',
687 'metadata': dict({
688 'artist_entity_type': None,
689 'chapters': None,
690 'collections': None,
691 'copyright': None,
692 'description': 'Download the full release here (creative commons). These cripsy beats are ripe with thumping funk and techno influences, sample wizardry and daring shuffles. Composed with the help of unique sound plugins which were especially programmed to measure Comfort Fit’s needs and wishes, we think the chances aren’t bad that you’ll fall for the unique sound signature, bounce and elegance of this unusual Hip Hop production. Ltj bukem / Good looking Rec., UK: "Really love this music." Velanche / XLR8R, UK: "Awesome job he\'s done... overall production is dope." Kwesi / BBE Music, UK: "Wooooooowwwww... WHAT THE FUCK! THIS IS WHAT',
693 'description_language': None,
694 'explicit': None,
695 'genres': list([
696 'East coast',
697 'Hip-Hop',
698 ]),
699 'grouping': None,
700 'has_transcript': None,
701 'images': list([
702 dict({
703 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
704 'provider': 'xx-instance-id-xx',
705 'proxy_id': None,
706 'remotely_accessible': False,
707 'type': 'thumb',
708 }),
709 dict({
710 'path': 'http://localhost:8989/play/art/0f8c3cbd6b0b22c3b5402141351ac812/album/21/thumb34.jpg',
711 'provider': 'xx-instance-id-xx',
712 'proxy_id': None,
713 'remotely_accessible': True,
714 'type': 'thumb',
715 }),
716 ]),
717 'label': None,
718 'languages': None,
719 'last_refresh': None,
720 'life_span': None,
721 'links': None,
722 'lrc_lyrics': None,
723 'lyrics': None,
724 'mood': 'slow',
725 'performers': None,
726 'popularity': None,
727 'preview': None,
728 'release_date': None,
729 'review': None,
730 'style': None,
731 'transcript': None,
732 'transcript_cues': None,
733 }),
734 'name': '8-bit lagerfeuer',
735 'position': None,
736 'provider': 'opensubsonic',
737 'provider_mappings': list([
738 dict({
739 'audio_format': dict({
740 'bit_depth': 16,
741 'bit_rate': 0,
742 'channels': 2,
743 'codec_type': '?',
744 'content_type': '?',
745 'output_format_str': '?',
746 'sample_rate': 44100,
747 }),
748 'available': True,
749 'details': None,
750 'in_library': None,
751 'is_unique': None,
752 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
753 'provider_domain': 'opensubsonic',
754 'provider_instance': 'xx-instance-id-xx',
755 'url': None,
756 }),
757 ]),
758 'sort_name': 'lagerfeuer (8-bit)',
759 'uri': 'opensubsonic://album/ad0f112b6dcf83de5e9cae85d07f0d35',
760 'version': '',
761 'year': 2007,
762 })
763# ---
764# name: test_parse_albums[spec.album]
765 dict({
766 'album_type': 'unknown',
767 'artists': list([
768 dict({
769 'available': True,
770 'external_ids': list([
771 ]),
772 'image': None,
773 'is_playable': True,
774 'item_id': '91c3901ac465b9efc439e4be4270c2b6',
775 'media_type': 'artist',
776 'name': 'pornophonique',
777 'provider': 'xx-instance-id-xx',
778 'sort_name': 'pornophonique',
779 'translation_key': None,
780 'uri': 'xx-instance-id-xx://artist/91c3901ac465b9efc439e4be4270c2b6',
781 'version': '',
782 'year': None,
783 }),
784 dict({
785 'available': True,
786 'external_ids': list([
787 ]),
788 'image': None,
789 'is_playable': True,
790 'item_id': 'ar-1',
791 'media_type': 'artist',
792 'name': 'Artist 1',
793 'provider': 'xx-instance-id-xx',
794 'sort_name': 'artist 1',
795 'translation_key': None,
796 'uri': 'xx-instance-id-xx://artist/ar-1',
797 'version': '',
798 'year': None,
799 }),
800 dict({
801 'available': True,
802 'external_ids': list([
803 ]),
804 'image': None,
805 'is_playable': True,
806 'item_id': 'ar-2',
807 'media_type': 'artist',
808 'name': 'Artist 2',
809 'provider': 'xx-instance-id-xx',
810 'sort_name': 'artist 2',
811 'translation_key': None,
812 'uri': 'xx-instance-id-xx://artist/ar-2',
813 'version': '',
814 'year': None,
815 }),
816 ]),
817 'date_added': None,
818 'external_ids': list([
819 list([
820 'musicbrainz_albumid',
821 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
822 ]),
823 ]),
824 'favorite': True,
825 'is_playable': True,
826 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
827 'media_type': 'album',
828 'metadata': dict({
829 'artist_entity_type': None,
830 'chapters': None,
831 'collections': None,
832 'copyright': None,
833 'description': None,
834 'description_language': None,
835 'explicit': None,
836 'genres': list([
837 'East coast',
838 'Hip-Hop',
839 ]),
840 'grouping': None,
841 'has_transcript': None,
842 'images': list([
843 dict({
844 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
845 'provider': 'xx-instance-id-xx',
846 'proxy_id': None,
847 'remotely_accessible': False,
848 'type': 'thumb',
849 }),
850 ]),
851 'label': None,
852 'languages': None,
853 'last_refresh': None,
854 'life_span': None,
855 'links': None,
856 'lrc_lyrics': None,
857 'lyrics': None,
858 'mood': 'slow',
859 'performers': None,
860 'popularity': None,
861 'preview': None,
862 'release_date': None,
863 'review': None,
864 'style': None,
865 'transcript': None,
866 'transcript_cues': None,
867 }),
868 'name': '8-bit lagerfeuer',
869 'position': None,
870 'provider': 'opensubsonic',
871 'provider_mappings': list([
872 dict({
873 'audio_format': dict({
874 'bit_depth': 16,
875 'bit_rate': 0,
876 'channels': 2,
877 'codec_type': '?',
878 'content_type': '?',
879 'output_format_str': '?',
880 'sample_rate': 44100,
881 }),
882 'available': True,
883 'details': None,
884 'in_library': None,
885 'is_unique': None,
886 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
887 'provider_domain': 'opensubsonic',
888 'provider_instance': 'xx-instance-id-xx',
889 'url': None,
890 }),
891 ]),
892 'sort_name': 'lagerfeuer (8-bit)',
893 'uri': 'opensubsonic://album/ad0f112b6dcf83de5e9cae85d07f0d35',
894 'version': 'Deluxe Edition',
895 'year': 2007,
896 })
897# ---
898# name: test_parse_albums[spec.album].1
899 dict({
900 'album_type': 'unknown',
901 'artists': list([
902 dict({
903 'available': True,
904 'external_ids': list([
905 ]),
906 'image': None,
907 'is_playable': True,
908 'item_id': '91c3901ac465b9efc439e4be4270c2b6',
909 'media_type': 'artist',
910 'name': 'pornophonique',
911 'provider': 'xx-instance-id-xx',
912 'sort_name': 'pornophonique',
913 'translation_key': None,
914 'uri': 'xx-instance-id-xx://artist/91c3901ac465b9efc439e4be4270c2b6',
915 'version': '',
916 'year': None,
917 }),
918 dict({
919 'available': True,
920 'external_ids': list([
921 ]),
922 'image': None,
923 'is_playable': True,
924 'item_id': 'ar-1',
925 'media_type': 'artist',
926 'name': 'Artist 1',
927 'provider': 'xx-instance-id-xx',
928 'sort_name': 'artist 1',
929 'translation_key': None,
930 'uri': 'xx-instance-id-xx://artist/ar-1',
931 'version': '',
932 'year': None,
933 }),
934 dict({
935 'available': True,
936 'external_ids': list([
937 ]),
938 'image': None,
939 'is_playable': True,
940 'item_id': 'ar-2',
941 'media_type': 'artist',
942 'name': 'Artist 2',
943 'provider': 'xx-instance-id-xx',
944 'sort_name': 'artist 2',
945 'translation_key': None,
946 'uri': 'xx-instance-id-xx://artist/ar-2',
947 'version': '',
948 'year': None,
949 }),
950 ]),
951 'date_added': None,
952 'external_ids': list([
953 list([
954 'musicbrainz_albumid',
955 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
956 ]),
957 ]),
958 'favorite': True,
959 'is_playable': True,
960 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
961 'media_type': 'album',
962 'metadata': dict({
963 'artist_entity_type': None,
964 'chapters': None,
965 'collections': None,
966 'copyright': None,
967 'description': 'Download the full release here (creative commons). These cripsy beats are ripe with thumping funk and techno influences, sample wizardry and daring shuffles. Composed with the help of unique sound plugins which were especially programmed to measure Comfort Fit’s needs and wishes, we think the chances aren’t bad that you’ll fall for the unique sound signature, bounce and elegance of this unusual Hip Hop production. Ltj bukem / Good looking Rec., UK: "Really love this music." Velanche / XLR8R, UK: "Awesome job he\'s done... overall production is dope." Kwesi / BBE Music, UK: "Wooooooowwwww... WHAT THE FUCK! THIS IS WHAT',
968 'description_language': None,
969 'explicit': None,
970 'genres': list([
971 'East coast',
972 'Hip-Hop',
973 ]),
974 'grouping': None,
975 'has_transcript': None,
976 'images': list([
977 dict({
978 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
979 'provider': 'xx-instance-id-xx',
980 'proxy_id': None,
981 'remotely_accessible': False,
982 'type': 'thumb',
983 }),
984 dict({
985 'path': 'http://localhost:8989/play/art/0f8c3cbd6b0b22c3b5402141351ac812/album/21/thumb34.jpg',
986 'provider': 'xx-instance-id-xx',
987 'proxy_id': None,
988 'remotely_accessible': True,
989 'type': 'thumb',
990 }),
991 ]),
992 'label': None,
993 'languages': None,
994 'last_refresh': None,
995 'life_span': None,
996 'links': None,
997 'lrc_lyrics': None,
998 'lyrics': None,
999 'mood': 'slow',
1000 'performers': None,
1001 'popularity': None,
1002 'preview': None,
1003 'release_date': None,
1004 'review': None,
1005 'style': None,
1006 'transcript': None,
1007 'transcript_cues': None,
1008 }),
1009 'name': '8-bit lagerfeuer',
1010 'position': None,
1011 'provider': 'opensubsonic',
1012 'provider_mappings': list([
1013 dict({
1014 'audio_format': dict({
1015 'bit_depth': 16,
1016 'bit_rate': 0,
1017 'channels': 2,
1018 'codec_type': '?',
1019 'content_type': '?',
1020 'output_format_str': '?',
1021 'sample_rate': 44100,
1022 }),
1023 'available': True,
1024 'details': None,
1025 'in_library': None,
1026 'is_unique': None,
1027 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
1028 'provider_domain': 'opensubsonic',
1029 'provider_instance': 'xx-instance-id-xx',
1030 'url': None,
1031 }),
1032 ]),
1033 'sort_name': 'lagerfeuer (8-bit)',
1034 'uri': 'opensubsonic://album/ad0f112b6dcf83de5e9cae85d07f0d35',
1035 'version': 'Deluxe Edition',
1036 'year': 2007,
1037 })
1038# ---
1039# name: test_parse_artists[no-sort-name.artist]
1040 dict({
1041 'artist_type': 'singer',
1042 'date_added': None,
1043 'external_ids': list([
1044 list([
1045 'musicbrainz_artistid',
1046 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
1047 ]),
1048 ]),
1049 'favorite': True,
1050 'is_playable': True,
1051 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
1052 'media_type': 'artist',
1053 'metadata': dict({
1054 'artist_entity_type': None,
1055 'chapters': None,
1056 'collections': None,
1057 'copyright': None,
1058 'description': None,
1059 'description_language': None,
1060 'explicit': None,
1061 'genres': None,
1062 'grouping': None,
1063 'has_transcript': None,
1064 'images': list([
1065 dict({
1066 'path': 'ar-37ec820ca7193e17040c98f7da7c4b51_0',
1067 'provider': 'xx-instance-id-xx',
1068 'proxy_id': None,
1069 'remotely_accessible': False,
1070 'type': 'thumb',
1071 }),
1072 dict({
1073 'path': 'https://demo.org/image.jpg',
1074 'provider': 'xx-instance-id-xx',
1075 'proxy_id': None,
1076 'remotely_accessible': True,
1077 'type': 'thumb',
1078 }),
1079 ]),
1080 'label': None,
1081 'languages': None,
1082 'last_refresh': None,
1083 'life_span': None,
1084 'links': None,
1085 'lrc_lyrics': None,
1086 'lyrics': None,
1087 'mood': None,
1088 'performers': None,
1089 'popularity': None,
1090 'preview': None,
1091 'release_date': None,
1092 'review': None,
1093 'style': None,
1094 'transcript': None,
1095 'transcript_cues': None,
1096 }),
1097 'name': '2 Mello',
1098 'position': None,
1099 'provider': 'opensubsonic',
1100 'provider_mappings': list([
1101 dict({
1102 'audio_format': dict({
1103 'bit_depth': 16,
1104 'bit_rate': 0,
1105 'channels': 2,
1106 'codec_type': '?',
1107 'content_type': '?',
1108 'output_format_str': '?',
1109 'sample_rate': 44100,
1110 }),
1111 'available': True,
1112 'details': None,
1113 'in_library': None,
1114 'is_unique': None,
1115 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
1116 'provider_domain': 'opensubsonic',
1117 'provider_instance': 'xx-instance-id-xx',
1118 'url': None,
1119 }),
1120 ]),
1121 'sort_name': '2 mello',
1122 'uri': 'opensubsonic://artist/37ec820ca7193e17040c98f7da7c4b51',
1123 'version': '',
1124 })
1125# ---
1126# name: test_parse_artists[no-sort-name.artist].1
1127 dict({
1128 'artist_type': 'singer',
1129 'date_added': None,
1130 'external_ids': list([
1131 list([
1132 'musicbrainz_artistid',
1133 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
1134 ]),
1135 ]),
1136 'favorite': True,
1137 'is_playable': True,
1138 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
1139 'media_type': 'artist',
1140 'metadata': dict({
1141 'artist_entity_type': None,
1142 'chapters': None,
1143 'collections': None,
1144 'copyright': None,
1145 'description': 'Empty biography',
1146 'description_language': None,
1147 'explicit': None,
1148 'genres': None,
1149 'grouping': None,
1150 'has_transcript': None,
1151 'images': list([
1152 dict({
1153 'path': 'ar-37ec820ca7193e17040c98f7da7c4b51_0',
1154 'provider': 'xx-instance-id-xx',
1155 'proxy_id': None,
1156 'remotely_accessible': False,
1157 'type': 'thumb',
1158 }),
1159 dict({
1160 'path': 'https://demo.org/image.jpg',
1161 'provider': 'xx-instance-id-xx',
1162 'proxy_id': None,
1163 'remotely_accessible': True,
1164 'type': 'thumb',
1165 }),
1166 dict({
1167 'path': 'http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg',
1168 'provider': 'xx-instance-id-xx',
1169 'proxy_id': None,
1170 'remotely_accessible': True,
1171 'type': 'thumb',
1172 }),
1173 ]),
1174 'label': None,
1175 'languages': None,
1176 'last_refresh': None,
1177 'life_span': None,
1178 'links': None,
1179 'lrc_lyrics': None,
1180 'lyrics': None,
1181 'mood': None,
1182 'performers': None,
1183 'popularity': None,
1184 'preview': None,
1185 'release_date': None,
1186 'review': None,
1187 'style': None,
1188 'transcript': None,
1189 'transcript_cues': None,
1190 }),
1191 'name': '2 Mello',
1192 'position': None,
1193 'provider': 'opensubsonic',
1194 'provider_mappings': list([
1195 dict({
1196 'audio_format': dict({
1197 'bit_depth': 16,
1198 'bit_rate': 0,
1199 'channels': 2,
1200 'codec_type': '?',
1201 'content_type': '?',
1202 'output_format_str': '?',
1203 'sample_rate': 44100,
1204 }),
1205 'available': True,
1206 'details': None,
1207 'in_library': None,
1208 'is_unique': None,
1209 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
1210 'provider_domain': 'opensubsonic',
1211 'provider_instance': 'xx-instance-id-xx',
1212 'url': None,
1213 }),
1214 ]),
1215 'sort_name': '2 mello',
1216 'uri': 'opensubsonic://artist/37ec820ca7193e17040c98f7da7c4b51',
1217 'version': '',
1218 })
1219# ---
1220# name: test_parse_artists[spec-artistid3.artist]
1221 dict({
1222 'artist_type': 'singer',
1223 'date_added': None,
1224 'external_ids': list([
1225 list([
1226 'musicbrainz_artistid',
1227 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
1228 ]),
1229 ]),
1230 'favorite': True,
1231 'is_playable': True,
1232 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
1233 'media_type': 'artist',
1234 'metadata': dict({
1235 'artist_entity_type': None,
1236 'chapters': None,
1237 'collections': None,
1238 'copyright': None,
1239 'description': None,
1240 'description_language': None,
1241 'explicit': None,
1242 'genres': None,
1243 'grouping': None,
1244 'has_transcript': None,
1245 'images': list([
1246 dict({
1247 'path': 'ar-37ec820ca7193e17040c98f7da7c4b51_0',
1248 'provider': 'xx-instance-id-xx',
1249 'proxy_id': None,
1250 'remotely_accessible': False,
1251 'type': 'thumb',
1252 }),
1253 dict({
1254 'path': 'https://demo.org/image.jpg',
1255 'provider': 'xx-instance-id-xx',
1256 'proxy_id': None,
1257 'remotely_accessible': True,
1258 'type': 'thumb',
1259 }),
1260 ]),
1261 'label': None,
1262 'languages': None,
1263 'last_refresh': None,
1264 'life_span': None,
1265 'links': None,
1266 'lrc_lyrics': None,
1267 'lyrics': None,
1268 'mood': None,
1269 'performers': None,
1270 'popularity': None,
1271 'preview': None,
1272 'release_date': None,
1273 'review': None,
1274 'style': None,
1275 'transcript': None,
1276 'transcript_cues': None,
1277 }),
1278 'name': '2 Mello',
1279 'position': None,
1280 'provider': 'opensubsonic',
1281 'provider_mappings': list([
1282 dict({
1283 'audio_format': dict({
1284 'bit_depth': 16,
1285 'bit_rate': 0,
1286 'channels': 2,
1287 'codec_type': '?',
1288 'content_type': '?',
1289 'output_format_str': '?',
1290 'sample_rate': 44100,
1291 }),
1292 'available': True,
1293 'details': None,
1294 'in_library': None,
1295 'is_unique': None,
1296 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
1297 'provider_domain': 'opensubsonic',
1298 'provider_instance': 'xx-instance-id-xx',
1299 'url': None,
1300 }),
1301 ]),
1302 'sort_name': 'Mello (2)',
1303 'uri': 'opensubsonic://artist/37ec820ca7193e17040c98f7da7c4b51',
1304 'version': '',
1305 })
1306# ---
1307# name: test_parse_artists[spec-artistid3.artist].1
1308 dict({
1309 'artist_type': 'singer',
1310 'date_added': None,
1311 'external_ids': list([
1312 list([
1313 'musicbrainz_artistid',
1314 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
1315 ]),
1316 ]),
1317 'favorite': True,
1318 'is_playable': True,
1319 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
1320 'media_type': 'artist',
1321 'metadata': dict({
1322 'artist_entity_type': None,
1323 'chapters': None,
1324 'collections': None,
1325 'copyright': None,
1326 'description': 'Empty biography',
1327 'description_language': None,
1328 'explicit': None,
1329 'genres': None,
1330 'grouping': None,
1331 'has_transcript': None,
1332 'images': list([
1333 dict({
1334 'path': 'ar-37ec820ca7193e17040c98f7da7c4b51_0',
1335 'provider': 'xx-instance-id-xx',
1336 'proxy_id': None,
1337 'remotely_accessible': False,
1338 'type': 'thumb',
1339 }),
1340 dict({
1341 'path': 'https://demo.org/image.jpg',
1342 'provider': 'xx-instance-id-xx',
1343 'proxy_id': None,
1344 'remotely_accessible': True,
1345 'type': 'thumb',
1346 }),
1347 dict({
1348 'path': 'http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg',
1349 'provider': 'xx-instance-id-xx',
1350 'proxy_id': None,
1351 'remotely_accessible': True,
1352 'type': 'thumb',
1353 }),
1354 ]),
1355 'label': None,
1356 'languages': None,
1357 'last_refresh': None,
1358 'life_span': None,
1359 'links': None,
1360 'lrc_lyrics': None,
1361 'lyrics': None,
1362 'mood': None,
1363 'performers': None,
1364 'popularity': None,
1365 'preview': None,
1366 'release_date': None,
1367 'review': None,
1368 'style': None,
1369 'transcript': None,
1370 'transcript_cues': None,
1371 }),
1372 'name': '2 Mello',
1373 'position': None,
1374 'provider': 'opensubsonic',
1375 'provider_mappings': list([
1376 dict({
1377 'audio_format': dict({
1378 'bit_depth': 16,
1379 'bit_rate': 0,
1380 'channels': 2,
1381 'codec_type': '?',
1382 'content_type': '?',
1383 'output_format_str': '?',
1384 'sample_rate': 44100,
1385 }),
1386 'available': True,
1387 'details': None,
1388 'in_library': None,
1389 'is_unique': None,
1390 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
1391 'provider_domain': 'opensubsonic',
1392 'provider_instance': 'xx-instance-id-xx',
1393 'url': None,
1394 }),
1395 ]),
1396 'sort_name': 'Mello (2)',
1397 'uri': 'opensubsonic://artist/37ec820ca7193e17040c98f7da7c4b51',
1398 'version': '',
1399 })
1400# ---
1401# name: test_parse_artists[spec-sample.artist]
1402 dict({
1403 'artist_type': 'singer',
1404 'date_added': None,
1405 'external_ids': list([
1406 ]),
1407 'favorite': True,
1408 'is_playable': True,
1409 'item_id': '100000002',
1410 'media_type': 'artist',
1411 'metadata': dict({
1412 'artist_entity_type': None,
1413 'chapters': None,
1414 'collections': None,
1415 'copyright': None,
1416 'description': None,
1417 'description_language': None,
1418 'explicit': None,
1419 'genres': None,
1420 'grouping': None,
1421 'has_transcript': None,
1422 'images': list([
1423 dict({
1424 'path': 'ar-100000002',
1425 'provider': 'xx-instance-id-xx',
1426 'proxy_id': None,
1427 'remotely_accessible': False,
1428 'type': 'thumb',
1429 }),
1430 ]),
1431 'label': None,
1432 'languages': None,
1433 'last_refresh': None,
1434 'life_span': None,
1435 'links': None,
1436 'lrc_lyrics': None,
1437 'lyrics': None,
1438 'mood': None,
1439 'performers': None,
1440 'popularity': None,
1441 'preview': None,
1442 'release_date': None,
1443 'review': None,
1444 'style': None,
1445 'transcript': None,
1446 'transcript_cues': None,
1447 }),
1448 'name': 'Synthetic',
1449 'position': None,
1450 'provider': 'opensubsonic',
1451 'provider_mappings': list([
1452 dict({
1453 'audio_format': dict({
1454 'bit_depth': 16,
1455 'bit_rate': 0,
1456 'channels': 2,
1457 'codec_type': '?',
1458 'content_type': '?',
1459 'output_format_str': '?',
1460 'sample_rate': 44100,
1461 }),
1462 'available': True,
1463 'details': None,
1464 'in_library': None,
1465 'is_unique': None,
1466 'item_id': '100000002',
1467 'provider_domain': 'opensubsonic',
1468 'provider_instance': 'xx-instance-id-xx',
1469 'url': None,
1470 }),
1471 ]),
1472 'sort_name': 'synthetic',
1473 'uri': 'opensubsonic://artist/100000002',
1474 'version': '',
1475 })
1476# ---
1477# name: test_parse_artists[spec-sample.artist].1
1478 dict({
1479 'artist_type': 'singer',
1480 'date_added': None,
1481 'external_ids': list([
1482 ]),
1483 'favorite': True,
1484 'is_playable': True,
1485 'item_id': '100000002',
1486 'media_type': 'artist',
1487 'metadata': dict({
1488 'artist_entity_type': None,
1489 'chapters': None,
1490 'collections': None,
1491 'copyright': None,
1492 'description': 'Empty biography',
1493 'description_language': None,
1494 'explicit': None,
1495 'genres': None,
1496 'grouping': None,
1497 'has_transcript': None,
1498 'images': list([
1499 dict({
1500 'path': 'ar-100000002',
1501 'provider': 'xx-instance-id-xx',
1502 'proxy_id': None,
1503 'remotely_accessible': False,
1504 'type': 'thumb',
1505 }),
1506 dict({
1507 'path': 'http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg',
1508 'provider': 'xx-instance-id-xx',
1509 'proxy_id': None,
1510 'remotely_accessible': True,
1511 'type': 'thumb',
1512 }),
1513 ]),
1514 'label': None,
1515 'languages': None,
1516 'last_refresh': None,
1517 'life_span': None,
1518 'links': None,
1519 'lrc_lyrics': None,
1520 'lyrics': None,
1521 'mood': None,
1522 'performers': None,
1523 'popularity': None,
1524 'preview': None,
1525 'release_date': None,
1526 'review': None,
1527 'style': None,
1528 'transcript': None,
1529 'transcript_cues': None,
1530 }),
1531 'name': 'Synthetic',
1532 'position': None,
1533 'provider': 'opensubsonic',
1534 'provider_mappings': list([
1535 dict({
1536 'audio_format': dict({
1537 'bit_depth': 16,
1538 'bit_rate': 0,
1539 'channels': 2,
1540 'codec_type': '?',
1541 'content_type': '?',
1542 'output_format_str': '?',
1543 'sample_rate': 44100,
1544 }),
1545 'available': True,
1546 'details': None,
1547 'in_library': None,
1548 'is_unique': None,
1549 'item_id': '100000002',
1550 'provider_domain': 'opensubsonic',
1551 'provider_instance': 'xx-instance-id-xx',
1552 'url': None,
1553 }),
1554 ]),
1555 'sort_name': 'synthetic',
1556 'uri': 'opensubsonic://artist/100000002',
1557 'version': '',
1558 })
1559# ---
1560# name: test_parse_episode[gonic-sample.episode]
1561 dict({
1562 'date_added': None,
1563 'duration': 1878,
1564 'external_ids': list([
1565 ]),
1566 'favorite': False,
1567 'fully_played': None,
1568 'is_playable': True,
1569 'item_id': 'pd-5$!$pe-1860',
1570 'media_type': 'podcast_episode',
1571 'metadata': dict({
1572 'artist_entity_type': None,
1573 'chapters': None,
1574 'collections': None,
1575 'copyright': None,
1576 'description': 'The history of The History of Rome...Why the Western Empire Fell when it did...Some thoughts on the future...Thank you, goodnight.',
1577 'description_language': None,
1578 'explicit': None,
1579 'genres': None,
1580 'grouping': None,
1581 'has_transcript': None,
1582 'images': list([
1583 dict({
1584 'path': 'pd-5',
1585 'provider': 'xx-instance-id-xx',
1586 'proxy_id': None,
1587 'remotely_accessible': False,
1588 'type': 'thumb',
1589 }),
1590 ]),
1591 'label': None,
1592 'languages': None,
1593 'last_refresh': None,
1594 'life_span': None,
1595 'links': None,
1596 'lrc_lyrics': None,
1597 'lyrics': None,
1598 'mood': None,
1599 'performers': None,
1600 'popularity': None,
1601 'preview': None,
1602 'release_date': '2012-05-06T18:18:38+00:00',
1603 'review': None,
1604 'style': None,
1605 'transcript': None,
1606 'transcript_cues': None,
1607 }),
1608 'name': '179- The End',
1609 'podcast': dict({
1610 'date_added': None,
1611 'external_ids': list([
1612 ]),
1613 'favorite': False,
1614 'is_playable': True,
1615 'item_id': 'pd-5',
1616 'media_type': 'podcast',
1617 'metadata': dict({
1618 'artist_entity_type': None,
1619 'chapters': None,
1620 'collections': None,
1621 'copyright': None,
1622 'description': 'A weekly podcast tracing the rise, decline and fall of the Roman Empire. Now complete!',
1623 'description_language': None,
1624 'explicit': None,
1625 'genres': None,
1626 'grouping': None,
1627 'has_transcript': None,
1628 'images': list([
1629 dict({
1630 'path': 'pd-5',
1631 'provider': 'xx-instance-id-xx',
1632 'proxy_id': None,
1633 'remotely_accessible': False,
1634 'type': 'thumb',
1635 }),
1636 ]),
1637 'label': None,
1638 'languages': None,
1639 'last_refresh': None,
1640 'life_span': None,
1641 'links': None,
1642 'lrc_lyrics': None,
1643 'lyrics': None,
1644 'mood': None,
1645 'performers': None,
1646 'popularity': None,
1647 'preview': None,
1648 'release_date': None,
1649 'review': None,
1650 'style': None,
1651 'transcript': None,
1652 'transcript_cues': None,
1653 }),
1654 'name': 'The History of Rome',
1655 'position': None,
1656 'provider': 'opensubsonic',
1657 'provider_mappings': list([
1658 dict({
1659 'audio_format': dict({
1660 'bit_depth': 16,
1661 'bit_rate': 0,
1662 'channels': 2,
1663 'codec_type': '?',
1664 'content_type': '?',
1665 'output_format_str': '?',
1666 'sample_rate': 44100,
1667 }),
1668 'available': True,
1669 'details': None,
1670 'in_library': None,
1671 'is_unique': None,
1672 'item_id': 'pd-5',
1673 'provider_domain': 'opensubsonic',
1674 'provider_instance': 'xx-instance-id-xx',
1675 'url': None,
1676 }),
1677 ]),
1678 'publisher': None,
1679 'sort_name': 'history of rome, the',
1680 'total_episodes': 5,
1681 'translation_key': None,
1682 'uri': 'http://feeds.feedburner.com/TheHistoryOfRome',
1683 'version': '',
1684 }),
1685 'position': 0,
1686 'provider': 'opensubsonic',
1687 'provider_mappings': list([
1688 dict({
1689 'audio_format': dict({
1690 'bit_depth': 16,
1691 'bit_rate': 0,
1692 'channels': 2,
1693 'codec_type': '?',
1694 'content_type': '?',
1695 'output_format_str': '?',
1696 'sample_rate': 44100,
1697 }),
1698 'available': True,
1699 'details': None,
1700 'in_library': None,
1701 'is_unique': None,
1702 'item_id': 'pd-5$!$pe-1860',
1703 'provider_domain': 'opensubsonic',
1704 'provider_instance': 'xx-instance-id-xx',
1705 'url': None,
1706 }),
1707 ]),
1708 'resume_position_ms': None,
1709 'sort_name': '179- the end',
1710 'uri': 'opensubsonic://podcast_episode/pd-5$!$pe-1860',
1711 'version': '',
1712 })
1713# ---
1714# name: test_parse_episode[no-cover.episode]
1715 dict({
1716 'date_added': None,
1717 'duration': 0,
1718 'external_ids': list([
1719 ]),
1720 'favorite': False,
1721 'fully_played': None,
1722 'is_playable': True,
1723 'item_id': 'pd-5$!$pe-1860',
1724 'media_type': 'podcast_episode',
1725 'metadata': dict({
1726 'artist_entity_type': None,
1727 'chapters': None,
1728 'collections': None,
1729 'copyright': None,
1730 'description': 'The history of The History of Rome...Why the Western Empire Fell when it did...Some thoughts on the future...Thank you, goodnight.',
1731 'description_language': None,
1732 'explicit': None,
1733 'genres': None,
1734 'grouping': None,
1735 'has_transcript': None,
1736 'images': list([
1737 dict({
1738 'path': 'pd-5',
1739 'provider': 'xx-instance-id-xx',
1740 'proxy_id': None,
1741 'remotely_accessible': False,
1742 'type': 'thumb',
1743 }),
1744 ]),
1745 'label': None,
1746 'languages': None,
1747 'last_refresh': None,
1748 'life_span': None,
1749 'links': None,
1750 'lrc_lyrics': None,
1751 'lyrics': None,
1752 'mood': None,
1753 'performers': None,
1754 'popularity': None,
1755 'preview': None,
1756 'release_date': '2012-05-06T18:18:38+00:00',
1757 'review': None,
1758 'style': None,
1759 'transcript': None,
1760 'transcript_cues': None,
1761 }),
1762 'name': '179- The End',
1763 'podcast': dict({
1764 'date_added': None,
1765 'external_ids': list([
1766 ]),
1767 'favorite': False,
1768 'is_playable': True,
1769 'item_id': 'pd-5',
1770 'media_type': 'podcast',
1771 'metadata': dict({
1772 'artist_entity_type': None,
1773 'chapters': None,
1774 'collections': None,
1775 'copyright': None,
1776 'description': 'A weekly podcast tracing the rise, decline and fall of the Roman Empire. Now complete!',
1777 'description_language': None,
1778 'explicit': None,
1779 'genres': None,
1780 'grouping': None,
1781 'has_transcript': None,
1782 'images': list([
1783 dict({
1784 'path': 'pd-5',
1785 'provider': 'xx-instance-id-xx',
1786 'proxy_id': None,
1787 'remotely_accessible': False,
1788 'type': 'thumb',
1789 }),
1790 ]),
1791 'label': None,
1792 'languages': None,
1793 'last_refresh': None,
1794 'life_span': None,
1795 'links': None,
1796 'lrc_lyrics': None,
1797 'lyrics': None,
1798 'mood': None,
1799 'performers': None,
1800 'popularity': None,
1801 'preview': None,
1802 'release_date': None,
1803 'review': None,
1804 'style': None,
1805 'transcript': None,
1806 'transcript_cues': None,
1807 }),
1808 'name': 'The History of Rome',
1809 'position': None,
1810 'provider': 'opensubsonic',
1811 'provider_mappings': list([
1812 dict({
1813 'audio_format': dict({
1814 'bit_depth': 16,
1815 'bit_rate': 0,
1816 'channels': 2,
1817 'codec_type': '?',
1818 'content_type': '?',
1819 'output_format_str': '?',
1820 'sample_rate': 44100,
1821 }),
1822 'available': True,
1823 'details': None,
1824 'in_library': None,
1825 'is_unique': None,
1826 'item_id': 'pd-5',
1827 'provider_domain': 'opensubsonic',
1828 'provider_instance': 'xx-instance-id-xx',
1829 'url': None,
1830 }),
1831 ]),
1832 'publisher': None,
1833 'sort_name': 'history of rome, the',
1834 'total_episodes': 5,
1835 'translation_key': None,
1836 'uri': 'http://feeds.feedburner.com/TheHistoryOfRome',
1837 'version': '',
1838 }),
1839 'position': 0,
1840 'provider': 'opensubsonic',
1841 'provider_mappings': list([
1842 dict({
1843 'audio_format': dict({
1844 'bit_depth': 16,
1845 'bit_rate': 0,
1846 'channels': 2,
1847 'codec_type': '?',
1848 'content_type': '?',
1849 'output_format_str': '?',
1850 'sample_rate': 44100,
1851 }),
1852 'available': True,
1853 'details': None,
1854 'in_library': None,
1855 'is_unique': None,
1856 'item_id': 'pd-5$!$pe-1860',
1857 'provider_domain': 'opensubsonic',
1858 'provider_instance': 'xx-instance-id-xx',
1859 'url': None,
1860 }),
1861 ]),
1862 'resume_position_ms': None,
1863 'sort_name': '179- the end',
1864 'uri': 'opensubsonic://podcast_episode/pd-5$!$pe-1860',
1865 'version': '',
1866 })
1867# ---
1868# name: test_parse_episode[no-duration.episode]
1869 dict({
1870 'date_added': None,
1871 'duration': 0,
1872 'external_ids': list([
1873 ]),
1874 'favorite': False,
1875 'fully_played': None,
1876 'is_playable': True,
1877 'item_id': 'pd-5$!$pe-1860',
1878 'media_type': 'podcast_episode',
1879 'metadata': dict({
1880 'artist_entity_type': None,
1881 'chapters': None,
1882 'collections': None,
1883 'copyright': None,
1884 'description': 'The history of The History of Rome...Why the Western Empire Fell when it did...Some thoughts on the future...Thank you, goodnight.',
1885 'description_language': None,
1886 'explicit': None,
1887 'genres': None,
1888 'grouping': None,
1889 'has_transcript': None,
1890 'images': list([
1891 dict({
1892 'path': 'pd-5',
1893 'provider': 'xx-instance-id-xx',
1894 'proxy_id': None,
1895 'remotely_accessible': False,
1896 'type': 'thumb',
1897 }),
1898 ]),
1899 'label': None,
1900 'languages': None,
1901 'last_refresh': None,
1902 'life_span': None,
1903 'links': None,
1904 'lrc_lyrics': None,
1905 'lyrics': None,
1906 'mood': None,
1907 'performers': None,
1908 'popularity': None,
1909 'preview': None,
1910 'release_date': '2012-05-06T18:18:38+00:00',
1911 'review': None,
1912 'style': None,
1913 'transcript': None,
1914 'transcript_cues': None,
1915 }),
1916 'name': '179- The End',
1917 'podcast': dict({
1918 'date_added': None,
1919 'external_ids': list([
1920 ]),
1921 'favorite': False,
1922 'is_playable': True,
1923 'item_id': 'pd-5',
1924 'media_type': 'podcast',
1925 'metadata': dict({
1926 'artist_entity_type': None,
1927 'chapters': None,
1928 'collections': None,
1929 'copyright': None,
1930 'description': 'A weekly podcast tracing the rise, decline and fall of the Roman Empire. Now complete!',
1931 'description_language': None,
1932 'explicit': None,
1933 'genres': None,
1934 'grouping': None,
1935 'has_transcript': None,
1936 'images': list([
1937 dict({
1938 'path': 'pd-5',
1939 'provider': 'xx-instance-id-xx',
1940 'proxy_id': None,
1941 'remotely_accessible': False,
1942 'type': 'thumb',
1943 }),
1944 ]),
1945 'label': None,
1946 'languages': None,
1947 'last_refresh': None,
1948 'life_span': None,
1949 'links': None,
1950 'lrc_lyrics': None,
1951 'lyrics': None,
1952 'mood': None,
1953 'performers': None,
1954 'popularity': None,
1955 'preview': None,
1956 'release_date': None,
1957 'review': None,
1958 'style': None,
1959 'transcript': None,
1960 'transcript_cues': None,
1961 }),
1962 'name': 'The History of Rome',
1963 'position': None,
1964 'provider': 'opensubsonic',
1965 'provider_mappings': list([
1966 dict({
1967 'audio_format': dict({
1968 'bit_depth': 16,
1969 'bit_rate': 0,
1970 'channels': 2,
1971 'codec_type': '?',
1972 'content_type': '?',
1973 'output_format_str': '?',
1974 'sample_rate': 44100,
1975 }),
1976 'available': True,
1977 'details': None,
1978 'in_library': None,
1979 'is_unique': None,
1980 'item_id': 'pd-5',
1981 'provider_domain': 'opensubsonic',
1982 'provider_instance': 'xx-instance-id-xx',
1983 'url': None,
1984 }),
1985 ]),
1986 'publisher': None,
1987 'sort_name': 'history of rome, the',
1988 'total_episodes': 5,
1989 'translation_key': None,
1990 'uri': 'http://feeds.feedburner.com/TheHistoryOfRome',
1991 'version': '',
1992 }),
1993 'position': 0,
1994 'provider': 'opensubsonic',
1995 'provider_mappings': list([
1996 dict({
1997 'audio_format': dict({
1998 'bit_depth': 16,
1999 'bit_rate': 0,
2000 'channels': 2,
2001 'codec_type': '?',
2002 'content_type': '?',
2003 'output_format_str': '?',
2004 'sample_rate': 44100,
2005 }),
2006 'available': True,
2007 'details': None,
2008 'in_library': None,
2009 'is_unique': None,
2010 'item_id': 'pd-5$!$pe-1860',
2011 'provider_domain': 'opensubsonic',
2012 'provider_instance': 'xx-instance-id-xx',
2013 'url': None,
2014 }),
2015 ]),
2016 'resume_position_ms': None,
2017 'sort_name': '179- the end',
2018 'uri': 'opensubsonic://podcast_episode/pd-5$!$pe-1860',
2019 'version': '',
2020 })
2021# ---
2022# name: test_parse_playlist[gonic-sample.playlist]
2023 dict({
2024 'date_added': None,
2025 'external_ids': list([
2026 ]),
2027 'favorite': False,
2028 'is_dynamic': False,
2029 'is_editable': True,
2030 'is_playable': True,
2031 'item_id': 'Mi8xNzQzNzg5NTk5MzM1LTE3NDM3ODk1OTkzMzUubTN1',
2032 'media_type': 'playlist',
2033 'metadata': dict({
2034 'artist_entity_type': None,
2035 'chapters': None,
2036 'collections': None,
2037 'copyright': None,
2038 'description': None,
2039 'description_language': None,
2040 'explicit': None,
2041 'genres': None,
2042 'grouping': None,
2043 'has_transcript': None,
2044 'images': list([
2045 dict({
2046 'path': 'al-2250',
2047 'provider': 'xx-instance-id-xx',
2048 'proxy_id': None,
2049 'remotely_accessible': False,
2050 'type': 'thumb',
2051 }),
2052 ]),
2053 'label': None,
2054 'languages': None,
2055 'last_refresh': None,
2056 'life_span': None,
2057 'links': None,
2058 'lrc_lyrics': None,
2059 'lyrics': None,
2060 'mood': None,
2061 'performers': None,
2062 'popularity': None,
2063 'preview': None,
2064 'release_date': None,
2065 'review': None,
2066 'style': None,
2067 'transcript': None,
2068 'transcript_cues': None,
2069 }),
2070 'name': "Guns N' Roses - Use Your Illusion",
2071 'owner': '',
2072 'position': None,
2073 'provider': 'opensubsonic',
2074 'provider_mappings': list([
2075 dict({
2076 'audio_format': dict({
2077 'bit_depth': 16,
2078 'bit_rate': 0,
2079 'channels': 2,
2080 'codec_type': '?',
2081 'content_type': '?',
2082 'output_format_str': '?',
2083 'sample_rate': 44100,
2084 }),
2085 'available': True,
2086 'details': None,
2087 'in_library': None,
2088 'is_unique': None,
2089 'item_id': 'Mi8xNzQzNzg5NTk5MzM1LTE3NDM3ODk1OTkzMzUubTN1',
2090 'provider_domain': 'opensubsonic',
2091 'provider_instance': 'xx-instance-id-xx',
2092 'url': None,
2093 }),
2094 ]),
2095 'sort_name': "guns n' roses - use your illusion",
2096 'supported_mediatypes': list([
2097 'track',
2098 ]),
2099 'translation_key': None,
2100 'translation_params': None,
2101 'uri': 'opensubsonic://playlist/Mi8xNzQzNzg5NTk5MzM1LTE3NDM3ODk1OTkzMzUubTN1',
2102 'version': '',
2103 })
2104# ---
2105# name: test_parse_podcast[gonic-sample.podcast]
2106 dict({
2107 'date_added': None,
2108 'external_ids': list([
2109 ]),
2110 'favorite': False,
2111 'is_playable': True,
2112 'item_id': 'pd-5',
2113 'media_type': 'podcast',
2114 'metadata': dict({
2115 'artist_entity_type': None,
2116 'chapters': None,
2117 'collections': None,
2118 'copyright': None,
2119 'description': 'A weekly podcast tracing the rise, decline and fall of the Roman Empire. Now complete!',
2120 'description_language': None,
2121 'explicit': None,
2122 'genres': None,
2123 'grouping': None,
2124 'has_transcript': None,
2125 'images': list([
2126 dict({
2127 'path': 'pd-5',
2128 'provider': 'xx-instance-id-xx',
2129 'proxy_id': None,
2130 'remotely_accessible': False,
2131 'type': 'thumb',
2132 }),
2133 ]),
2134 'label': None,
2135 'languages': None,
2136 'last_refresh': None,
2137 'life_span': None,
2138 'links': None,
2139 'lrc_lyrics': None,
2140 'lyrics': None,
2141 'mood': None,
2142 'performers': None,
2143 'popularity': None,
2144 'preview': None,
2145 'release_date': None,
2146 'review': None,
2147 'style': None,
2148 'transcript': None,
2149 'transcript_cues': None,
2150 }),
2151 'name': 'The History of Rome',
2152 'position': None,
2153 'provider': 'opensubsonic',
2154 'provider_mappings': list([
2155 dict({
2156 'audio_format': dict({
2157 'bit_depth': 16,
2158 'bit_rate': 0,
2159 'channels': 2,
2160 'codec_type': '?',
2161 'content_type': '?',
2162 'output_format_str': '?',
2163 'sample_rate': 44100,
2164 }),
2165 'available': True,
2166 'details': None,
2167 'in_library': None,
2168 'is_unique': None,
2169 'item_id': 'pd-5',
2170 'provider_domain': 'opensubsonic',
2171 'provider_instance': 'xx-instance-id-xx',
2172 'url': None,
2173 }),
2174 ]),
2175 'publisher': None,
2176 'sort_name': 'history of rome, the',
2177 'total_episodes': 5,
2178 'translation_key': None,
2179 'uri': 'http://feeds.feedburner.com/TheHistoryOfRome',
2180 'version': '',
2181 })
2182# ---
2183# name: test_parse_podcast[no-episodes.podcast]
2184 dict({
2185 'date_added': None,
2186 'external_ids': list([
2187 ]),
2188 'favorite': False,
2189 'is_playable': True,
2190 'item_id': 'pd-5',
2191 'media_type': 'podcast',
2192 'metadata': dict({
2193 'artist_entity_type': None,
2194 'chapters': None,
2195 'collections': None,
2196 'copyright': None,
2197 'description': 'A weekly podcast tracing the rise, decline and fall of the Roman Empire. Now complete!',
2198 'description_language': None,
2199 'explicit': None,
2200 'genres': None,
2201 'grouping': None,
2202 'has_transcript': None,
2203 'images': list([
2204 dict({
2205 'path': 'pd-5',
2206 'provider': 'xx-instance-id-xx',
2207 'proxy_id': None,
2208 'remotely_accessible': False,
2209 'type': 'thumb',
2210 }),
2211 ]),
2212 'label': None,
2213 'languages': None,
2214 'last_refresh': None,
2215 'life_span': None,
2216 'links': None,
2217 'lrc_lyrics': None,
2218 'lyrics': None,
2219 'mood': None,
2220 'performers': None,
2221 'popularity': None,
2222 'preview': None,
2223 'release_date': None,
2224 'review': None,
2225 'style': None,
2226 'transcript': None,
2227 'transcript_cues': None,
2228 }),
2229 'name': 'The History of Rome',
2230 'position': None,
2231 'provider': 'opensubsonic',
2232 'provider_mappings': list([
2233 dict({
2234 'audio_format': dict({
2235 'bit_depth': 16,
2236 'bit_rate': 0,
2237 'channels': 2,
2238 'codec_type': '?',
2239 'content_type': '?',
2240 'output_format_str': '?',
2241 'sample_rate': 44100,
2242 }),
2243 'available': True,
2244 'details': None,
2245 'in_library': None,
2246 'is_unique': None,
2247 'item_id': 'pd-5',
2248 'provider_domain': 'opensubsonic',
2249 'provider_instance': 'xx-instance-id-xx',
2250 'url': None,
2251 }),
2252 ]),
2253 'publisher': None,
2254 'sort_name': 'history of rome, the',
2255 'total_episodes': 0,
2256 'translation_key': None,
2257 'uri': 'http://feeds.feedburner.com/TheHistoryOfRome',
2258 'version': '',
2259 })
2260# ---
2261# name: test_parse_track[missing-items.track]
2262 dict({
2263 'album': dict({
2264 'available': True,
2265 'external_ids': list([
2266 ]),
2267 'image': None,
2268 'is_playable': True,
2269 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
2270 'media_type': 'album',
2271 'name': 'Live at The Casbah - 2005-04-29',
2272 'provider': 'xx-instance-id-xx',
2273 'sort_name': 'live at the casbah - 2005-04-29',
2274 'translation_key': None,
2275 'uri': 'xx-instance-id-xx://album/e8a0685e3f3ec6f251649af2b58b8617',
2276 'version': '',
2277 'year': None,
2278 }),
2279 'artists': list([
2280 dict({
2281 'artist_type': 'singer',
2282 'date_added': None,
2283 'external_ids': list([
2284 ]),
2285 'favorite': False,
2286 'is_playable': True,
2287 'item_id': 'fake_artist_unknown',
2288 'media_type': 'artist',
2289 'metadata': dict({
2290 'artist_entity_type': None,
2291 'chapters': None,
2292 'collections': None,
2293 'copyright': None,
2294 'description': None,
2295 'description_language': None,
2296 'explicit': None,
2297 'genres': None,
2298 'grouping': None,
2299 'has_transcript': None,
2300 'images': None,
2301 'label': None,
2302 'languages': None,
2303 'last_refresh': None,
2304 'life_span': None,
2305 'links': None,
2306 'lrc_lyrics': None,
2307 'lyrics': None,
2308 'mood': None,
2309 'performers': None,
2310 'popularity': None,
2311 'preview': None,
2312 'release_date': None,
2313 'review': None,
2314 'style': None,
2315 'transcript': None,
2316 'transcript_cues': None,
2317 }),
2318 'name': '[unknown]',
2319 'position': None,
2320 'provider': 'xx-instance-id-xx',
2321 'provider_mappings': list([
2322 dict({
2323 'audio_format': dict({
2324 'bit_depth': 16,
2325 'bit_rate': 0,
2326 'channels': 2,
2327 'codec_type': '?',
2328 'content_type': '?',
2329 'output_format_str': '?',
2330 'sample_rate': 44100,
2331 }),
2332 'available': True,
2333 'details': None,
2334 'in_library': None,
2335 'is_unique': None,
2336 'item_id': 'fake_artist_unknown',
2337 'provider_domain': 'opensubsonic',
2338 'provider_instance': 'xx-instance-id-xx',
2339 'url': None,
2340 }),
2341 ]),
2342 'sort_name': 'unknown]',
2343 'uri': 'xx-instance-id-xx://artist/fake_artist_unknown',
2344 'version': '',
2345 }),
2346 ]),
2347 'audio_metadata': None,
2348 'date_added': None,
2349 'disc_number': 0,
2350 'duration': 0,
2351 'external_ids': list([
2352 list([
2353 'musicbrainz_recordingid',
2354 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2355 ]),
2356 ]),
2357 'favorite': True,
2358 'is_playable': True,
2359 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2360 'last_played': 0,
2361 'media_type': 'track',
2362 'metadata': dict({
2363 'artist_entity_type': None,
2364 'chapters': None,
2365 'collections': None,
2366 'copyright': None,
2367 'description': None,
2368 'description_language': None,
2369 'explicit': True,
2370 'genres': list([
2371 'East coast',
2372 'Hip-Hop',
2373 ]),
2374 'grouping': None,
2375 'has_transcript': None,
2376 'images': list([
2377 dict({
2378 'path': 'mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce',
2379 'provider': 'xx-instance-id-xx',
2380 'proxy_id': None,
2381 'remotely_accessible': False,
2382 'type': 'thumb',
2383 }),
2384 ]),
2385 'label': None,
2386 'languages': None,
2387 'last_refresh': None,
2388 'life_span': None,
2389 'links': None,
2390 'lrc_lyrics': None,
2391 'lyrics': None,
2392 'mood': 'slow',
2393 'performers': list([
2394 'Artist 3',
2395 'Artist 4',
2396 'Artist 5',
2397 ]),
2398 'popularity': None,
2399 'preview': None,
2400 'release_date': None,
2401 'review': None,
2402 'style': None,
2403 'transcript': None,
2404 'transcript_cues': None,
2405 }),
2406 'name': '"polar expedition"',
2407 'position': None,
2408 'provider': 'xx-instance-id-xx',
2409 'provider_mappings': list([
2410 dict({
2411 'audio_format': dict({
2412 'bit_depth': 16,
2413 'bit_rate': 0,
2414 'channels': 2,
2415 'codec_type': '?',
2416 'content_type': '?',
2417 'output_format_str': '?',
2418 'sample_rate': 44100,
2419 }),
2420 'available': True,
2421 'details': None,
2422 'in_library': None,
2423 'is_unique': None,
2424 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2425 'provider_domain': 'opensubsonic',
2426 'provider_instance': 'xx-instance-id-xx',
2427 'url': None,
2428 }),
2429 ]),
2430 'sort_name': 'Polar expedition',
2431 'track_number': 0,
2432 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
2433 'version': '',
2434 })
2435# ---
2436# name: test_parse_track[missing-items.track].1
2437 dict({
2438 'album': dict({
2439 'album_type': 'unknown',
2440 'artists': list([
2441 dict({
2442 'available': True,
2443 'external_ids': list([
2444 ]),
2445 'image': None,
2446 'is_playable': True,
2447 'item_id': '97e0398acf63f9fb930d7d4ce209a52b',
2448 'media_type': 'artist',
2449 'name': 'pornophonique',
2450 'provider': 'xx-instance-id-xx',
2451 'sort_name': 'pornophonique',
2452 'translation_key': None,
2453 'uri': 'xx-instance-id-xx://artist/97e0398acf63f9fb930d7d4ce209a52b',
2454 'version': '',
2455 'year': None,
2456 }),
2457 dict({
2458 'available': True,
2459 'external_ids': list([
2460 ]),
2461 'image': None,
2462 'is_playable': True,
2463 'item_id': 'ar-1',
2464 'media_type': 'artist',
2465 'name': 'Artist 1',
2466 'provider': 'xx-instance-id-xx',
2467 'sort_name': 'artist 1',
2468 'translation_key': None,
2469 'uri': 'xx-instance-id-xx://artist/ar-1',
2470 'version': '',
2471 'year': None,
2472 }),
2473 dict({
2474 'available': True,
2475 'external_ids': list([
2476 ]),
2477 'image': None,
2478 'is_playable': True,
2479 'item_id': 'ar-2',
2480 'media_type': 'artist',
2481 'name': 'Artist 2',
2482 'provider': 'xx-instance-id-xx',
2483 'sort_name': 'artist 2',
2484 'translation_key': None,
2485 'uri': 'xx-instance-id-xx://artist/ar-2',
2486 'version': '',
2487 'year': None,
2488 }),
2489 ]),
2490 'date_added': None,
2491 'external_ids': list([
2492 list([
2493 'musicbrainz_albumid',
2494 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2495 ]),
2496 ]),
2497 'favorite': True,
2498 'is_playable': True,
2499 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
2500 'media_type': 'album',
2501 'metadata': dict({
2502 'artist_entity_type': None,
2503 'chapters': None,
2504 'collections': None,
2505 'copyright': None,
2506 'description': None,
2507 'description_language': None,
2508 'explicit': None,
2509 'genres': list([
2510 'East coast',
2511 'Hip-Hop',
2512 ]),
2513 'grouping': None,
2514 'has_transcript': None,
2515 'images': list([
2516 dict({
2517 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
2518 'provider': 'xx-instance-id-xx',
2519 'proxy_id': None,
2520 'remotely_accessible': False,
2521 'type': 'thumb',
2522 }),
2523 ]),
2524 'label': None,
2525 'languages': None,
2526 'last_refresh': None,
2527 'life_span': None,
2528 'links': None,
2529 'lrc_lyrics': None,
2530 'lyrics': None,
2531 'mood': 'slow',
2532 'performers': None,
2533 'popularity': None,
2534 'preview': None,
2535 'release_date': None,
2536 'review': None,
2537 'style': None,
2538 'transcript': None,
2539 'transcript_cues': None,
2540 }),
2541 'name': 'Live at The Casbah - 2005-04-29',
2542 'position': None,
2543 'provider': 'opensubsonic',
2544 'provider_mappings': list([
2545 dict({
2546 'audio_format': dict({
2547 'bit_depth': 16,
2548 'bit_rate': 0,
2549 'channels': 2,
2550 'codec_type': '?',
2551 'content_type': '?',
2552 'output_format_str': '?',
2553 'sample_rate': 44100,
2554 }),
2555 'available': True,
2556 'details': None,
2557 'in_library': None,
2558 'is_unique': None,
2559 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
2560 'provider_domain': 'opensubsonic',
2561 'provider_instance': 'xx-instance-id-xx',
2562 'url': None,
2563 }),
2564 ]),
2565 'sort_name': 'lagerfeuer (8-bit)',
2566 'uri': 'opensubsonic://album/e8a0685e3f3ec6f251649af2b58b8617',
2567 'version': 'Deluxe Edition',
2568 'year': 2007,
2569 }),
2570 'artists': list([
2571 dict({
2572 'artist_type': 'singer',
2573 'date_added': None,
2574 'external_ids': list([
2575 ]),
2576 'favorite': False,
2577 'is_playable': True,
2578 'item_id': 'fake_artist_unknown',
2579 'media_type': 'artist',
2580 'metadata': dict({
2581 'artist_entity_type': None,
2582 'chapters': None,
2583 'collections': None,
2584 'copyright': None,
2585 'description': None,
2586 'description_language': None,
2587 'explicit': None,
2588 'genres': None,
2589 'grouping': None,
2590 'has_transcript': None,
2591 'images': None,
2592 'label': None,
2593 'languages': None,
2594 'last_refresh': None,
2595 'life_span': None,
2596 'links': None,
2597 'lrc_lyrics': None,
2598 'lyrics': None,
2599 'mood': None,
2600 'performers': None,
2601 'popularity': None,
2602 'preview': None,
2603 'release_date': None,
2604 'review': None,
2605 'style': None,
2606 'transcript': None,
2607 'transcript_cues': None,
2608 }),
2609 'name': '[unknown]',
2610 'position': None,
2611 'provider': 'xx-instance-id-xx',
2612 'provider_mappings': list([
2613 dict({
2614 'audio_format': dict({
2615 'bit_depth': 16,
2616 'bit_rate': 0,
2617 'channels': 2,
2618 'codec_type': '?',
2619 'content_type': '?',
2620 'output_format_str': '?',
2621 'sample_rate': 44100,
2622 }),
2623 'available': True,
2624 'details': None,
2625 'in_library': None,
2626 'is_unique': None,
2627 'item_id': 'fake_artist_unknown',
2628 'provider_domain': 'opensubsonic',
2629 'provider_instance': 'xx-instance-id-xx',
2630 'url': None,
2631 }),
2632 ]),
2633 'sort_name': 'unknown]',
2634 'uri': 'xx-instance-id-xx://artist/fake_artist_unknown',
2635 'version': '',
2636 }),
2637 ]),
2638 'audio_metadata': None,
2639 'date_added': None,
2640 'disc_number': 0,
2641 'duration': 0,
2642 'external_ids': list([
2643 list([
2644 'musicbrainz_recordingid',
2645 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2646 ]),
2647 ]),
2648 'favorite': True,
2649 'is_playable': True,
2650 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2651 'last_played': 0,
2652 'media_type': 'track',
2653 'metadata': dict({
2654 'artist_entity_type': None,
2655 'chapters': None,
2656 'collections': None,
2657 'copyright': None,
2658 'description': None,
2659 'description_language': None,
2660 'explicit': True,
2661 'genres': list([
2662 'East coast',
2663 'Hip-Hop',
2664 ]),
2665 'grouping': None,
2666 'has_transcript': None,
2667 'images': list([
2668 dict({
2669 'path': 'mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce',
2670 'provider': 'xx-instance-id-xx',
2671 'proxy_id': None,
2672 'remotely_accessible': False,
2673 'type': 'thumb',
2674 }),
2675 ]),
2676 'label': None,
2677 'languages': None,
2678 'last_refresh': None,
2679 'life_span': None,
2680 'links': None,
2681 'lrc_lyrics': None,
2682 'lyrics': None,
2683 'mood': 'slow',
2684 'performers': list([
2685 'Artist 3',
2686 'Artist 4',
2687 'Artist 5',
2688 ]),
2689 'popularity': None,
2690 'preview': None,
2691 'release_date': None,
2692 'review': None,
2693 'style': None,
2694 'transcript': None,
2695 'transcript_cues': None,
2696 }),
2697 'name': '"polar expedition"',
2698 'position': None,
2699 'provider': 'xx-instance-id-xx',
2700 'provider_mappings': list([
2701 dict({
2702 'audio_format': dict({
2703 'bit_depth': 16,
2704 'bit_rate': 0,
2705 'channels': 2,
2706 'codec_type': '?',
2707 'content_type': '?',
2708 'output_format_str': '?',
2709 'sample_rate': 44100,
2710 }),
2711 'available': True,
2712 'details': None,
2713 'in_library': None,
2714 'is_unique': None,
2715 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2716 'provider_domain': 'opensubsonic',
2717 'provider_instance': 'xx-instance-id-xx',
2718 'url': None,
2719 }),
2720 ]),
2721 'sort_name': 'Polar expedition',
2722 'track_number': 0,
2723 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
2724 'version': 'Deluxe Edition',
2725 })
2726# ---
2727# name: test_parse_track[navi-various.track]
2728 dict({
2729 'album': dict({
2730 'available': True,
2731 'external_ids': list([
2732 ]),
2733 'image': None,
2734 'is_playable': True,
2735 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
2736 'media_type': 'album',
2737 'name': 'Live at The Casbah - 2005-04-29',
2738 'provider': 'xx-instance-id-xx',
2739 'sort_name': 'live at the casbah - 2005-04-29',
2740 'translation_key': None,
2741 'uri': 'xx-instance-id-xx://album/e8a0685e3f3ec6f251649af2b58b8617',
2742 'version': '',
2743 'year': None,
2744 }),
2745 'artists': list([
2746 dict({
2747 'artist_type': 'singer',
2748 'date_added': None,
2749 'external_ids': list([
2750 ]),
2751 'favorite': False,
2752 'is_playable': True,
2753 'item_id': 'MA-NAVIDROME-The New Deal',
2754 'media_type': 'artist',
2755 'metadata': dict({
2756 'artist_entity_type': None,
2757 'chapters': None,
2758 'collections': None,
2759 'copyright': None,
2760 'description': None,
2761 'description_language': None,
2762 'explicit': None,
2763 'genres': None,
2764 'grouping': None,
2765 'has_transcript': None,
2766 'images': None,
2767 'label': None,
2768 'languages': None,
2769 'last_refresh': None,
2770 'life_span': None,
2771 'links': None,
2772 'lrc_lyrics': None,
2773 'lyrics': None,
2774 'mood': None,
2775 'performers': None,
2776 'popularity': None,
2777 'preview': None,
2778 'release_date': None,
2779 'review': None,
2780 'style': None,
2781 'transcript': None,
2782 'transcript_cues': None,
2783 }),
2784 'name': 'The New Deal',
2785 'position': None,
2786 'provider': 'opensubsonic',
2787 'provider_mappings': list([
2788 dict({
2789 'audio_format': dict({
2790 'bit_depth': 16,
2791 'bit_rate': 0,
2792 'channels': 2,
2793 'codec_type': '?',
2794 'content_type': '?',
2795 'output_format_str': '?',
2796 'sample_rate': 44100,
2797 }),
2798 'available': True,
2799 'details': None,
2800 'in_library': None,
2801 'is_unique': None,
2802 'item_id': 'MA-NAVIDROME-The New Deal',
2803 'provider_domain': 'opensubsonic',
2804 'provider_instance': 'xx-instance-id-xx',
2805 'url': None,
2806 }),
2807 ]),
2808 'sort_name': 'new deal, the',
2809 'uri': 'opensubsonic://artist/MA-NAVIDROME-The New Deal',
2810 'version': '',
2811 }),
2812 ]),
2813 'audio_metadata': None,
2814 'date_added': None,
2815 'disc_number': 0,
2816 'duration': 0,
2817 'external_ids': list([
2818 list([
2819 'musicbrainz_recordingid',
2820 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2821 ]),
2822 ]),
2823 'favorite': True,
2824 'is_playable': True,
2825 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2826 'last_played': 0,
2827 'media_type': 'track',
2828 'metadata': dict({
2829 'artist_entity_type': None,
2830 'chapters': None,
2831 'collections': None,
2832 'copyright': None,
2833 'description': None,
2834 'description_language': None,
2835 'explicit': True,
2836 'genres': list([
2837 'East coast',
2838 'Hip-Hop',
2839 ]),
2840 'grouping': None,
2841 'has_transcript': None,
2842 'images': list([
2843 dict({
2844 'path': 'mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce',
2845 'provider': 'xx-instance-id-xx',
2846 'proxy_id': None,
2847 'remotely_accessible': False,
2848 'type': 'thumb',
2849 }),
2850 ]),
2851 'label': None,
2852 'languages': None,
2853 'last_refresh': None,
2854 'life_span': None,
2855 'links': None,
2856 'lrc_lyrics': None,
2857 'lyrics': None,
2858 'mood': 'slow',
2859 'performers': list([
2860 'Artist 3',
2861 'Artist 4',
2862 'Artist 5',
2863 ]),
2864 'popularity': None,
2865 'preview': None,
2866 'release_date': None,
2867 'review': None,
2868 'style': None,
2869 'transcript': None,
2870 'transcript_cues': None,
2871 }),
2872 'name': '"polar expedition"',
2873 'position': None,
2874 'provider': 'xx-instance-id-xx',
2875 'provider_mappings': list([
2876 dict({
2877 'audio_format': dict({
2878 'bit_depth': 16,
2879 'bit_rate': 0,
2880 'channels': 2,
2881 'codec_type': '?',
2882 'content_type': '?',
2883 'output_format_str': '?',
2884 'sample_rate': 44100,
2885 }),
2886 'available': True,
2887 'details': None,
2888 'in_library': None,
2889 'is_unique': None,
2890 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2891 'provider_domain': 'opensubsonic',
2892 'provider_instance': 'xx-instance-id-xx',
2893 'url': None,
2894 }),
2895 ]),
2896 'sort_name': 'Polar expedition',
2897 'track_number': 0,
2898 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
2899 'version': '',
2900 })
2901# ---
2902# name: test_parse_track[navi-various.track].1
2903 dict({
2904 'album': dict({
2905 'album_type': 'unknown',
2906 'artists': list([
2907 dict({
2908 'available': True,
2909 'external_ids': list([
2910 ]),
2911 'image': None,
2912 'is_playable': True,
2913 'item_id': '97e0398acf63f9fb930d7d4ce209a52b',
2914 'media_type': 'artist',
2915 'name': 'pornophonique',
2916 'provider': 'xx-instance-id-xx',
2917 'sort_name': 'pornophonique',
2918 'translation_key': None,
2919 'uri': 'xx-instance-id-xx://artist/97e0398acf63f9fb930d7d4ce209a52b',
2920 'version': '',
2921 'year': None,
2922 }),
2923 dict({
2924 'available': True,
2925 'external_ids': list([
2926 ]),
2927 'image': None,
2928 'is_playable': True,
2929 'item_id': 'ar-1',
2930 'media_type': 'artist',
2931 'name': 'Artist 1',
2932 'provider': 'xx-instance-id-xx',
2933 'sort_name': 'artist 1',
2934 'translation_key': None,
2935 'uri': 'xx-instance-id-xx://artist/ar-1',
2936 'version': '',
2937 'year': None,
2938 }),
2939 dict({
2940 'available': True,
2941 'external_ids': list([
2942 ]),
2943 'image': None,
2944 'is_playable': True,
2945 'item_id': 'ar-2',
2946 'media_type': 'artist',
2947 'name': 'Artist 2',
2948 'provider': 'xx-instance-id-xx',
2949 'sort_name': 'artist 2',
2950 'translation_key': None,
2951 'uri': 'xx-instance-id-xx://artist/ar-2',
2952 'version': '',
2953 'year': None,
2954 }),
2955 ]),
2956 'date_added': None,
2957 'external_ids': list([
2958 list([
2959 'musicbrainz_albumid',
2960 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2961 ]),
2962 ]),
2963 'favorite': True,
2964 'is_playable': True,
2965 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
2966 'media_type': 'album',
2967 'metadata': dict({
2968 'artist_entity_type': None,
2969 'chapters': None,
2970 'collections': None,
2971 'copyright': None,
2972 'description': None,
2973 'description_language': None,
2974 'explicit': None,
2975 'genres': list([
2976 'East coast',
2977 'Hip-Hop',
2978 ]),
2979 'grouping': None,
2980 'has_transcript': None,
2981 'images': list([
2982 dict({
2983 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
2984 'provider': 'xx-instance-id-xx',
2985 'proxy_id': None,
2986 'remotely_accessible': False,
2987 'type': 'thumb',
2988 }),
2989 ]),
2990 'label': None,
2991 'languages': None,
2992 'last_refresh': None,
2993 'life_span': None,
2994 'links': None,
2995 'lrc_lyrics': None,
2996 'lyrics': None,
2997 'mood': 'slow',
2998 'performers': None,
2999 'popularity': None,
3000 'preview': None,
3001 'release_date': None,
3002 'review': None,
3003 'style': None,
3004 'transcript': None,
3005 'transcript_cues': None,
3006 }),
3007 'name': 'Live at The Casbah - 2005-04-29',
3008 'position': None,
3009 'provider': 'opensubsonic',
3010 'provider_mappings': list([
3011 dict({
3012 'audio_format': dict({
3013 'bit_depth': 16,
3014 'bit_rate': 0,
3015 'channels': 2,
3016 'codec_type': '?',
3017 'content_type': '?',
3018 'output_format_str': '?',
3019 'sample_rate': 44100,
3020 }),
3021 'available': True,
3022 'details': None,
3023 'in_library': None,
3024 'is_unique': None,
3025 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
3026 'provider_domain': 'opensubsonic',
3027 'provider_instance': 'xx-instance-id-xx',
3028 'url': None,
3029 }),
3030 ]),
3031 'sort_name': 'lagerfeuer (8-bit)',
3032 'uri': 'opensubsonic://album/e8a0685e3f3ec6f251649af2b58b8617',
3033 'version': 'Deluxe Edition',
3034 'year': 2007,
3035 }),
3036 'artists': list([
3037 dict({
3038 'artist_type': 'singer',
3039 'date_added': None,
3040 'external_ids': list([
3041 ]),
3042 'favorite': False,
3043 'is_playable': True,
3044 'item_id': 'MA-NAVIDROME-The New Deal',
3045 'media_type': 'artist',
3046 'metadata': dict({
3047 'artist_entity_type': None,
3048 'chapters': None,
3049 'collections': None,
3050 'copyright': None,
3051 'description': None,
3052 'description_language': None,
3053 'explicit': None,
3054 'genres': None,
3055 'grouping': None,
3056 'has_transcript': None,
3057 'images': None,
3058 'label': None,
3059 'languages': None,
3060 'last_refresh': None,
3061 'life_span': None,
3062 'links': None,
3063 'lrc_lyrics': None,
3064 'lyrics': None,
3065 'mood': None,
3066 'performers': None,
3067 'popularity': None,
3068 'preview': None,
3069 'release_date': None,
3070 'review': None,
3071 'style': None,
3072 'transcript': None,
3073 'transcript_cues': None,
3074 }),
3075 'name': 'The New Deal',
3076 'position': None,
3077 'provider': 'opensubsonic',
3078 'provider_mappings': list([
3079 dict({
3080 'audio_format': dict({
3081 'bit_depth': 16,
3082 'bit_rate': 0,
3083 'channels': 2,
3084 'codec_type': '?',
3085 'content_type': '?',
3086 'output_format_str': '?',
3087 'sample_rate': 44100,
3088 }),
3089 'available': True,
3090 'details': None,
3091 'in_library': None,
3092 'is_unique': None,
3093 'item_id': 'MA-NAVIDROME-The New Deal',
3094 'provider_domain': 'opensubsonic',
3095 'provider_instance': 'xx-instance-id-xx',
3096 'url': None,
3097 }),
3098 ]),
3099 'sort_name': 'new deal, the',
3100 'uri': 'opensubsonic://artist/MA-NAVIDROME-The New Deal',
3101 'version': '',
3102 }),
3103 ]),
3104 'audio_metadata': None,
3105 'date_added': None,
3106 'disc_number': 0,
3107 'duration': 0,
3108 'external_ids': list([
3109 list([
3110 'musicbrainz_recordingid',
3111 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
3112 ]),
3113 ]),
3114 'favorite': True,
3115 'is_playable': True,
3116 'item_id': '082f435a363c32c57d5edb6a678a28d4',
3117 'last_played': 0,
3118 'media_type': 'track',
3119 'metadata': dict({
3120 'artist_entity_type': None,
3121 'chapters': None,
3122 'collections': None,
3123 'copyright': None,
3124 'description': None,
3125 'description_language': None,
3126 'explicit': True,
3127 'genres': list([
3128 'East coast',
3129 'Hip-Hop',
3130 ]),
3131 'grouping': None,
3132 'has_transcript': None,
3133 'images': list([
3134 dict({
3135 'path': 'mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce',
3136 'provider': 'xx-instance-id-xx',
3137 'proxy_id': None,
3138 'remotely_accessible': False,
3139 'type': 'thumb',
3140 }),
3141 ]),
3142 'label': None,
3143 'languages': None,
3144 'last_refresh': None,
3145 'life_span': None,
3146 'links': None,
3147 'lrc_lyrics': None,
3148 'lyrics': None,
3149 'mood': 'slow',
3150 'performers': list([
3151 'Artist 3',
3152 'Artist 4',
3153 'Artist 5',
3154 ]),
3155 'popularity': None,
3156 'preview': None,
3157 'release_date': None,
3158 'review': None,
3159 'style': None,
3160 'transcript': None,
3161 'transcript_cues': None,
3162 }),
3163 'name': '"polar expedition"',
3164 'position': None,
3165 'provider': 'xx-instance-id-xx',
3166 'provider_mappings': list([
3167 dict({
3168 'audio_format': dict({
3169 'bit_depth': 16,
3170 'bit_rate': 0,
3171 'channels': 2,
3172 'codec_type': '?',
3173 'content_type': '?',
3174 'output_format_str': '?',
3175 'sample_rate': 44100,
3176 }),
3177 'available': True,
3178 'details': None,
3179 'in_library': None,
3180 'is_unique': None,
3181 'item_id': '082f435a363c32c57d5edb6a678a28d4',
3182 'provider_domain': 'opensubsonic',
3183 'provider_instance': 'xx-instance-id-xx',
3184 'url': None,
3185 }),
3186 ]),
3187 'sort_name': 'Polar expedition',
3188 'track_number': 0,
3189 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
3190 'version': 'Deluxe Edition',
3191 })
3192# ---
3193# name: test_parse_track[no-version.track]
3194 dict({
3195 'album': dict({
3196 'available': True,
3197 'external_ids': list([
3198 ]),
3199 'image': None,
3200 'is_playable': True,
3201 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
3202 'media_type': 'album',
3203 'name': 'Live at The Casbah - 2005-04-29',
3204 'provider': 'xx-instance-id-xx',
3205 'sort_name': 'live at the casbah - 2005-04-29',
3206 'translation_key': None,
3207 'uri': 'xx-instance-id-xx://album/e8a0685e3f3ec6f251649af2b58b8617',
3208 'version': '',
3209 'year': None,
3210 }),
3211 'artists': list([
3212 dict({
3213 'available': True,
3214 'external_ids': list([
3215 ]),
3216 'image': None,
3217 'is_playable': True,
3218 'item_id': '97e0398acf63f9fb930d7d4ce209a52b',
3219 'media_type': 'artist',
3220 'name': 'The New Deal',
3221 'provider': 'xx-instance-id-xx',
3222 'sort_name': 'new deal, the',
3223 'translation_key': None,
3224 'uri': 'xx-instance-id-xx://artist/97e0398acf63f9fb930d7d4ce209a52b',
3225 'version': '',
3226 'year': None,
3227 }),
3228 dict({
3229 'available': True,
3230 'external_ids': list([
3231 ]),
3232 'image': None,
3233 'is_playable': True,
3234 'item_id': 'ar-1',
3235 'media_type': 'artist',
3236 'name': 'Artist 1',
3237 'provider': 'xx-instance-id-xx',
3238 'sort_name': 'artist 1',
3239 'translation_key': None,
3240 'uri': 'xx-instance-id-xx://artist/ar-1',
3241 'version': '',
3242 'year': None,
3243 }),
3244 dict({
3245 'available': True,
3246 'external_ids': list([
3247 ]),
3248 'image': None,
3249 'is_playable': True,
3250 'item_id': 'ar-2',
3251 'media_type': 'artist',
3252 'name': 'Artist 2',
3253 'provider': 'xx-instance-id-xx',
3254 'sort_name': 'artist 2',
3255 'translation_key': None,
3256 'uri': 'xx-instance-id-xx://artist/ar-2',
3257 'version': '',
3258 'year': None,
3259 }),
3260 ]),
3261 'audio_metadata': None,
3262 'date_added': None,
3263 'disc_number': 1,
3264 'duration': 178,
3265 'external_ids': list([
3266 list([
3267 'musicbrainz_recordingid',
3268 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
3269 ]),
3270 ]),
3271 'favorite': True,
3272 'is_playable': True,
3273 'item_id': '082f435a363c32c57d5edb6a678a28d4',
3274 'last_played': 0,
3275 'media_type': 'track',
3276 'metadata': dict({
3277 'artist_entity_type': None,
3278 'chapters': None,
3279 'collections': None,
3280 'copyright': None,
3281 'description': None,
3282 'description_language': None,
3283 'explicit': True,
3284 'genres': list([
3285 'East coast',
3286 'Hip-Hop',
3287 ]),
3288 'grouping': None,
3289 'has_transcript': None,
3290 'images': list([
3291 dict({
3292 'path': 'mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce',
3293 'provider': 'xx-instance-id-xx',
3294 'proxy_id': None,
3295 'remotely_accessible': False,
3296 'type': 'thumb',
3297 }),
3298 ]),
3299 'label': None,
3300 'languages': None,
3301 'last_refresh': None,
3302 'life_span': None,
3303 'links': None,
3304 'lrc_lyrics': None,
3305 'lyrics': None,
3306 'mood': 'slow',
3307 'performers': list([
3308 'Artist 3',
3309 'Artist 4',
3310 'Artist 5',
3311 ]),
3312 'popularity': None,
3313 'preview': None,
3314 'release_date': None,
3315 'review': None,
3316 'style': None,
3317 'transcript': None,
3318 'transcript_cues': None,
3319 }),
3320 'name': '"polar expedition"',
3321 'position': None,
3322 'provider': 'xx-instance-id-xx',
3323 'provider_mappings': list([
3324 dict({
3325 'audio_format': dict({
3326 'bit_depth': 16,
3327 'bit_rate': 880,
3328 'channels': 2,
3329 'codec_type': '?',
3330 'content_type': 'flac',
3331 'output_format_str': 'flac',
3332 'sample_rate': 44100,
3333 }),
3334 'available': True,
3335 'details': None,
3336 'in_library': None,
3337 'is_unique': None,
3338 'item_id': '082f435a363c32c57d5edb6a678a28d4',
3339 'provider_domain': 'opensubsonic',
3340 'provider_instance': 'xx-instance-id-xx',
3341 'url': None,
3342 }),
3343 ]),
3344 'sort_name': 'Polar expedition',
3345 'track_number': 4,
3346 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
3347 'version': '',
3348 })
3349# ---
3350# name: test_parse_track[no-version.track].1
3351 dict({
3352 'album': dict({
3353 'album_type': 'unknown',
3354 'artists': list([
3355 dict({
3356 'available': True,
3357 'external_ids': list([
3358 ]),
3359 'image': None,
3360 'is_playable': True,
3361 'item_id': '97e0398acf63f9fb930d7d4ce209a52b',
3362 'media_type': 'artist',
3363 'name': 'pornophonique',
3364 'provider': 'xx-instance-id-xx',
3365 'sort_name': 'pornophonique',
3366 'translation_key': None,
3367 'uri': 'xx-instance-id-xx://artist/97e0398acf63f9fb930d7d4ce209a52b',
3368 'version': '',
3369 'year': None,
3370 }),
3371 dict({
3372 'available': True,
3373 'external_ids': list([
3374 ]),
3375 'image': None,
3376 'is_playable': True,
3377 'item_id': 'ar-1',
3378 'media_type': 'artist',
3379 'name': 'Artist 1',
3380 'provider': 'xx-instance-id-xx',
3381 'sort_name': 'artist 1',
3382 'translation_key': None,
3383 'uri': 'xx-instance-id-xx://artist/ar-1',
3384 'version': '',
3385 'year': None,
3386 }),
3387 dict({
3388 'available': True,
3389 'external_ids': list([
3390 ]),
3391 'image': None,
3392 'is_playable': True,
3393 'item_id': 'ar-2',
3394 'media_type': 'artist',
3395 'name': 'Artist 2',
3396 'provider': 'xx-instance-id-xx',
3397 'sort_name': 'artist 2',
3398 'translation_key': None,
3399 'uri': 'xx-instance-id-xx://artist/ar-2',
3400 'version': '',
3401 'year': None,
3402 }),
3403 ]),
3404 'date_added': None,
3405 'external_ids': list([
3406 list([
3407 'musicbrainz_albumid',
3408 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
3409 ]),
3410 ]),
3411 'favorite': True,
3412 'is_playable': True,
3413 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
3414 'media_type': 'album',
3415 'metadata': dict({
3416 'artist_entity_type': None,
3417 'chapters': None,
3418 'collections': None,
3419 'copyright': None,
3420 'description': None,
3421 'description_language': None,
3422 'explicit': None,
3423 'genres': list([
3424 'East coast',
3425 'Hip-Hop',
3426 ]),
3427 'grouping': None,
3428 'has_transcript': None,
3429 'images': list([
3430 dict({
3431 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
3432 'provider': 'xx-instance-id-xx',
3433 'proxy_id': None,
3434 'remotely_accessible': False,
3435 'type': 'thumb',
3436 }),
3437 ]),
3438 'label': None,
3439 'languages': None,
3440 'last_refresh': None,
3441 'life_span': None,
3442 'links': None,
3443 'lrc_lyrics': None,
3444 'lyrics': None,
3445 'mood': 'slow',
3446 'performers': None,
3447 'popularity': None,
3448 'preview': None,
3449 'release_date': None,
3450 'review': None,
3451 'style': None,
3452 'transcript': None,
3453 'transcript_cues': None,
3454 }),
3455 'name': 'Live at The Casbah - 2005-04-29',
3456 'position': None,
3457 'provider': 'opensubsonic',
3458 'provider_mappings': list([
3459 dict({
3460 'audio_format': dict({
3461 'bit_depth': 16,
3462 'bit_rate': 0,
3463 'channels': 2,
3464 'codec_type': '?',
3465 'content_type': '?',
3466 'output_format_str': '?',
3467 'sample_rate': 44100,
3468 }),
3469 'available': True,
3470 'details': None,
3471 'in_library': None,
3472 'is_unique': None,
3473 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
3474 'provider_domain': 'opensubsonic',
3475 'provider_instance': 'xx-instance-id-xx',
3476 'url': None,
3477 }),
3478 ]),
3479 'sort_name': 'lagerfeuer (8-bit)',
3480 'uri': 'opensubsonic://album/e8a0685e3f3ec6f251649af2b58b8617',
3481 'version': '',
3482 'year': 2007,
3483 }),
3484 'artists': list([
3485 dict({
3486 'available': True,
3487 'external_ids': list([
3488 ]),
3489 'image': None,
3490 'is_playable': True,
3491 'item_id': '97e0398acf63f9fb930d7d4ce209a52b',
3492 'media_type': 'artist',
3493 'name': 'The New Deal',
3494 'provider': 'xx-instance-id-xx',
3495 'sort_name': 'new deal, the',
3496 'translation_key': None,
3497 'uri': 'xx-instance-id-xx://artist/97e0398acf63f9fb930d7d4ce209a52b',
3498 'version': '',
3499 'year': None,
3500 }),
3501 dict({
3502 'available': True,
3503 'external_ids': list([
3504 ]),
3505 'image': None,
3506 'is_playable': True,
3507 'item_id': 'ar-1',
3508 'media_type': 'artist',
3509 'name': 'Artist 1',
3510 'provider': 'xx-instance-id-xx',
3511 'sort_name': 'artist 1',
3512 'translation_key': None,
3513 'uri': 'xx-instance-id-xx://artist/ar-1',
3514 'version': '',
3515 'year': None,
3516 }),
3517 dict({
3518 'available': True,
3519 'external_ids': list([
3520 ]),
3521 'image': None,
3522 'is_playable': True,
3523 'item_id': 'ar-2',
3524 'media_type': 'artist',
3525 'name': 'Artist 2',
3526 'provider': 'xx-instance-id-xx',
3527 'sort_name': 'artist 2',
3528 'translation_key': None,
3529 'uri': 'xx-instance-id-xx://artist/ar-2',
3530 'version': '',
3531 'year': None,
3532 }),
3533 ]),
3534 'audio_metadata': None,
3535 'date_added': None,
3536 'disc_number': 1,
3537 'duration': 178,
3538 'external_ids': list([
3539 list([
3540 'musicbrainz_recordingid',
3541 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
3542 ]),
3543 ]),
3544 'favorite': True,
3545 'is_playable': True,
3546 'item_id': '082f435a363c32c57d5edb6a678a28d4',
3547 'last_played': 0,
3548 'media_type': 'track',
3549 'metadata': dict({
3550 'artist_entity_type': None,
3551 'chapters': None,
3552 'collections': None,
3553 'copyright': None,
3554 'description': None,
3555 'description_language': None,
3556 'explicit': True,
3557 'genres': list([
3558 'East coast',
3559 'Hip-Hop',
3560 ]),
3561 'grouping': None,
3562 'has_transcript': None,
3563 'images': list([
3564 dict({
3565 'path': 'mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce',
3566 'provider': 'xx-instance-id-xx',
3567 'proxy_id': None,
3568 'remotely_accessible': False,
3569 'type': 'thumb',
3570 }),
3571 ]),
3572 'label': None,
3573 'languages': None,
3574 'last_refresh': None,
3575 'life_span': None,
3576 'links': None,
3577 'lrc_lyrics': None,
3578 'lyrics': None,
3579 'mood': 'slow',
3580 'performers': list([
3581 'Artist 3',
3582 'Artist 4',
3583 'Artist 5',
3584 ]),
3585 'popularity': None,
3586 'preview': None,
3587 'release_date': None,
3588 'review': None,
3589 'style': None,
3590 'transcript': None,
3591 'transcript_cues': None,
3592 }),
3593 'name': '"polar expedition"',
3594 'position': None,
3595 'provider': 'xx-instance-id-xx',
3596 'provider_mappings': list([
3597 dict({
3598 'audio_format': dict({
3599 'bit_depth': 16,
3600 'bit_rate': 880,
3601 'channels': 2,
3602 'codec_type': '?',
3603 'content_type': 'flac',
3604 'output_format_str': 'flac',
3605 'sample_rate': 44100,
3606 }),
3607 'available': True,
3608 'details': None,
3609 'in_library': None,
3610 'is_unique': None,
3611 'item_id': '082f435a363c32c57d5edb6a678a28d4',
3612 'provider_domain': 'opensubsonic',
3613 'provider_instance': 'xx-instance-id-xx',
3614 'url': None,
3615 }),
3616 ]),
3617 'sort_name': 'Polar expedition',
3618 'track_number': 4,
3619 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
3620 'version': '',
3621 })
3622# ---
3623# name: test_parse_track[spec-child.track]
3624 dict({
3625 'album': dict({
3626 'available': True,
3627 'external_ids': list([
3628 ]),
3629 'image': None,
3630 'is_playable': True,
3631 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
3632 'media_type': 'album',
3633 'name': 'Live at The Casbah - 2005-04-29',
3634 'provider': 'xx-instance-id-xx',
3635 'sort_name': 'live at the casbah - 2005-04-29',
3636 'translation_key': None,
3637 'uri': 'xx-instance-id-xx://album/e8a0685e3f3ec6f251649af2b58b8617',
3638 'version': '',
3639 'year': None,
3640 }),
3641 'artists': list([
3642 dict({
3643 'available': True,
3644 'external_ids': list([
3645 ]),
3646 'image': None,
3647 'is_playable': True,
3648 'item_id': '97e0398acf63f9fb930d7d4ce209a52b',
3649 'media_type': 'artist',
3650 'name': 'The New Deal',
3651 'provider': 'xx-instance-id-xx',
3652 'sort_name': 'new deal, the',
3653 'translation_key': None,
3654 'uri': 'xx-instance-id-xx://artist/97e0398acf63f9fb930d7d4ce209a52b',
3655 'version': '',
3656 'year': None,
3657 }),
3658 dict({
3659 'available': True,
3660 'external_ids': list([
3661 ]),
3662 'image': None,
3663 'is_playable': True,
3664 'item_id': 'ar-1',
3665 'media_type': 'artist',
3666 'name': 'Artist 1',
3667 'provider': 'xx-instance-id-xx',
3668 'sort_name': 'artist 1',
3669 'translation_key': None,
3670 'uri': 'xx-instance-id-xx://artist/ar-1',
3671 'version': '',
3672 'year': None,
3673 }),
3674 dict({
3675 'available': True,
3676 'external_ids': list([
3677 ]),
3678 'image': None,
3679 'is_playable': True,
3680 'item_id': 'ar-2',
3681 'media_type': 'artist',
3682 'name': 'Artist 2',
3683 'provider': 'xx-instance-id-xx',
3684 'sort_name': 'artist 2',
3685 'translation_key': None,
3686 'uri': 'xx-instance-id-xx://artist/ar-2',
3687 'version': '',
3688 'year': None,
3689 }),
3690 ]),
3691 'audio_metadata': None,
3692 'date_added': None,
3693 'disc_number': 1,
3694 'duration': 178,
3695 'external_ids': list([
3696 list([
3697 'musicbrainz_recordingid',
3698 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
3699 ]),
3700 ]),
3701 'favorite': True,
3702 'is_playable': True,
3703 'item_id': '082f435a363c32c57d5edb6a678a28d4',
3704 'last_played': 0,
3705 'media_type': 'track',
3706 'metadata': dict({
3707 'artist_entity_type': None,
3708 'chapters': None,
3709 'collections': None,
3710 'copyright': None,
3711 'description': None,
3712 'description_language': None,
3713 'explicit': True,
3714 'genres': list([
3715 'East coast',
3716 'Hip-Hop',
3717 ]),
3718 'grouping': None,
3719 'has_transcript': None,
3720 'images': list([
3721 dict({
3722 'path': 'mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce',
3723 'provider': 'xx-instance-id-xx',
3724 'proxy_id': None,
3725 'remotely_accessible': False,
3726 'type': 'thumb',
3727 }),
3728 ]),
3729 'label': None,
3730 'languages': None,
3731 'last_refresh': None,
3732 'life_span': None,
3733 'links': None,
3734 'lrc_lyrics': None,
3735 'lyrics': None,
3736 'mood': 'slow',
3737 'performers': list([
3738 'Artist 3',
3739 'Artist 4',
3740 'Artist 5',
3741 ]),
3742 'popularity': None,
3743 'preview': None,
3744 'release_date': None,
3745 'review': None,
3746 'style': None,
3747 'transcript': None,
3748 'transcript_cues': None,
3749 }),
3750 'name': '"polar expedition"',
3751 'position': None,
3752 'provider': 'xx-instance-id-xx',
3753 'provider_mappings': list([
3754 dict({
3755 'audio_format': dict({
3756 'bit_depth': 16,
3757 'bit_rate': 880,
3758 'channels': 2,
3759 'codec_type': '?',
3760 'content_type': 'flac',
3761 'output_format_str': 'flac',
3762 'sample_rate': 44100,
3763 }),
3764 'available': True,
3765 'details': None,
3766 'in_library': None,
3767 'is_unique': None,
3768 'item_id': '082f435a363c32c57d5edb6a678a28d4',
3769 'provider_domain': 'opensubsonic',
3770 'provider_instance': 'xx-instance-id-xx',
3771 'url': None,
3772 }),
3773 ]),
3774 'sort_name': 'Polar expedition',
3775 'track_number': 4,
3776 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
3777 'version': '',
3778 })
3779# ---
3780# name: test_parse_track[spec-child.track].1
3781 dict({
3782 'album': dict({
3783 'album_type': 'unknown',
3784 'artists': list([
3785 dict({
3786 'available': True,
3787 'external_ids': list([
3788 ]),
3789 'image': None,
3790 'is_playable': True,
3791 'item_id': '97e0398acf63f9fb930d7d4ce209a52b',
3792 'media_type': 'artist',
3793 'name': 'pornophonique',
3794 'provider': 'xx-instance-id-xx',
3795 'sort_name': 'pornophonique',
3796 'translation_key': None,
3797 'uri': 'xx-instance-id-xx://artist/97e0398acf63f9fb930d7d4ce209a52b',
3798 'version': '',
3799 'year': None,
3800 }),
3801 dict({
3802 'available': True,
3803 'external_ids': list([
3804 ]),
3805 'image': None,
3806 'is_playable': True,
3807 'item_id': 'ar-1',
3808 'media_type': 'artist',
3809 'name': 'Artist 1',
3810 'provider': 'xx-instance-id-xx',
3811 'sort_name': 'artist 1',
3812 'translation_key': None,
3813 'uri': 'xx-instance-id-xx://artist/ar-1',
3814 'version': '',
3815 'year': None,
3816 }),
3817 dict({
3818 'available': True,
3819 'external_ids': list([
3820 ]),
3821 'image': None,
3822 'is_playable': True,
3823 'item_id': 'ar-2',
3824 'media_type': 'artist',
3825 'name': 'Artist 2',
3826 'provider': 'xx-instance-id-xx',
3827 'sort_name': 'artist 2',
3828 'translation_key': None,
3829 'uri': 'xx-instance-id-xx://artist/ar-2',
3830 'version': '',
3831 'year': None,
3832 }),
3833 ]),
3834 'date_added': None,
3835 'external_ids': list([
3836 list([
3837 'musicbrainz_albumid',
3838 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
3839 ]),
3840 ]),
3841 'favorite': True,
3842 'is_playable': True,
3843 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
3844 'media_type': 'album',
3845 'metadata': dict({
3846 'artist_entity_type': None,
3847 'chapters': None,
3848 'collections': None,
3849 'copyright': None,
3850 'description': None,
3851 'description_language': None,
3852 'explicit': None,
3853 'genres': list([
3854 'East coast',
3855 'Hip-Hop',
3856 ]),
3857 'grouping': None,
3858 'has_transcript': None,
3859 'images': list([
3860 dict({
3861 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
3862 'provider': 'xx-instance-id-xx',
3863 'proxy_id': None,
3864 'remotely_accessible': False,
3865 'type': 'thumb',
3866 }),
3867 ]),
3868 'label': None,
3869 'languages': None,
3870 'last_refresh': None,
3871 'life_span': None,
3872 'links': None,
3873 'lrc_lyrics': None,
3874 'lyrics': None,
3875 'mood': 'slow',
3876 'performers': None,
3877 'popularity': None,
3878 'preview': None,
3879 'release_date': None,
3880 'review': None,
3881 'style': None,
3882 'transcript': None,
3883 'transcript_cues': None,
3884 }),
3885 'name': 'Live at The Casbah - 2005-04-29',
3886 'position': None,
3887 'provider': 'opensubsonic',
3888 'provider_mappings': list([
3889 dict({
3890 'audio_format': dict({
3891 'bit_depth': 16,
3892 'bit_rate': 0,
3893 'channels': 2,
3894 'codec_type': '?',
3895 'content_type': '?',
3896 'output_format_str': '?',
3897 'sample_rate': 44100,
3898 }),
3899 'available': True,
3900 'details': None,
3901 'in_library': None,
3902 'is_unique': None,
3903 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
3904 'provider_domain': 'opensubsonic',
3905 'provider_instance': 'xx-instance-id-xx',
3906 'url': None,
3907 }),
3908 ]),
3909 'sort_name': 'lagerfeuer (8-bit)',
3910 'uri': 'opensubsonic://album/e8a0685e3f3ec6f251649af2b58b8617',
3911 'version': 'Deluxe Edition',
3912 'year': 2007,
3913 }),
3914 'artists': list([
3915 dict({
3916 'available': True,
3917 'external_ids': list([
3918 ]),
3919 'image': None,
3920 'is_playable': True,
3921 'item_id': '97e0398acf63f9fb930d7d4ce209a52b',
3922 'media_type': 'artist',
3923 'name': 'The New Deal',
3924 'provider': 'xx-instance-id-xx',
3925 'sort_name': 'new deal, the',
3926 'translation_key': None,
3927 'uri': 'xx-instance-id-xx://artist/97e0398acf63f9fb930d7d4ce209a52b',
3928 'version': '',
3929 'year': None,
3930 }),
3931 dict({
3932 'available': True,
3933 'external_ids': list([
3934 ]),
3935 'image': None,
3936 'is_playable': True,
3937 'item_id': 'ar-1',
3938 'media_type': 'artist',
3939 'name': 'Artist 1',
3940 'provider': 'xx-instance-id-xx',
3941 'sort_name': 'artist 1',
3942 'translation_key': None,
3943 'uri': 'xx-instance-id-xx://artist/ar-1',
3944 'version': '',
3945 'year': None,
3946 }),
3947 dict({
3948 'available': True,
3949 'external_ids': list([
3950 ]),
3951 'image': None,
3952 'is_playable': True,
3953 'item_id': 'ar-2',
3954 'media_type': 'artist',
3955 'name': 'Artist 2',
3956 'provider': 'xx-instance-id-xx',
3957 'sort_name': 'artist 2',
3958 'translation_key': None,
3959 'uri': 'xx-instance-id-xx://artist/ar-2',
3960 'version': '',
3961 'year': None,
3962 }),
3963 ]),
3964 'audio_metadata': None,
3965 'date_added': None,
3966 'disc_number': 1,
3967 'duration': 178,
3968 'external_ids': list([
3969 list([
3970 'musicbrainz_recordingid',
3971 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
3972 ]),
3973 ]),
3974 'favorite': True,
3975 'is_playable': True,
3976 'item_id': '082f435a363c32c57d5edb6a678a28d4',
3977 'last_played': 0,
3978 'media_type': 'track',
3979 'metadata': dict({
3980 'artist_entity_type': None,
3981 'chapters': None,
3982 'collections': None,
3983 'copyright': None,
3984 'description': None,
3985 'description_language': None,
3986 'explicit': True,
3987 'genres': list([
3988 'East coast',
3989 'Hip-Hop',
3990 ]),
3991 'grouping': None,
3992 'has_transcript': None,
3993 'images': list([
3994 dict({
3995 'path': 'mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce',
3996 'provider': 'xx-instance-id-xx',
3997 'proxy_id': None,
3998 'remotely_accessible': False,
3999 'type': 'thumb',
4000 }),
4001 ]),
4002 'label': None,
4003 'languages': None,
4004 'last_refresh': None,
4005 'life_span': None,
4006 'links': None,
4007 'lrc_lyrics': None,
4008 'lyrics': None,
4009 'mood': 'slow',
4010 'performers': list([
4011 'Artist 3',
4012 'Artist 4',
4013 'Artist 5',
4014 ]),
4015 'popularity': None,
4016 'preview': None,
4017 'release_date': None,
4018 'review': None,
4019 'style': None,
4020 'transcript': None,
4021 'transcript_cues': None,
4022 }),
4023 'name': '"polar expedition"',
4024 'position': None,
4025 'provider': 'xx-instance-id-xx',
4026 'provider_mappings': list([
4027 dict({
4028 'audio_format': dict({
4029 'bit_depth': 16,
4030 'bit_rate': 880,
4031 'channels': 2,
4032 'codec_type': '?',
4033 'content_type': 'flac',
4034 'output_format_str': 'flac',
4035 'sample_rate': 44100,
4036 }),
4037 'available': True,
4038 'details': None,
4039 'in_library': None,
4040 'is_unique': None,
4041 'item_id': '082f435a363c32c57d5edb6a678a28d4',
4042 'provider_domain': 'opensubsonic',
4043 'provider_instance': 'xx-instance-id-xx',
4044 'url': None,
4045 }),
4046 ]),
4047 'sort_name': 'Polar expedition',
4048 'track_number': 4,
4049 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
4050 'version': 'Deluxe Edition',
4051 })
4052# ---
4053# name: test_structured_lyrics[no-sync.structured-lyrics]
4054 '''
4055 It's bugging me
4056 Grating me
4057 And twisting me around...
4058 '''
4059# ---
4060# name: test_structured_lyrics[structured.structured-lyrics]
4061 '''
4062 [59:59.90]It's bugging me
4063 [00:01.90]Grating me
4064 [00:02.90]And twisting me around...
4065 '''
4066# ---
4067