/
/
/
1# serializer version: 1
2# name: test_parse_albums[no-artist.album]
3 dict({
4 'album_type': 'unknown',
5 'artists': list([
6 dict({
7 'date_added': None,
8 'external_ids': list([
9 ]),
10 'favorite': False,
11 'is_playable': True,
12 'item_id': 'fake_artist_unknown',
13 'media_type': 'artist',
14 'metadata': dict({
15 'chapters': None,
16 'copyright': None,
17 'description': None,
18 'explicit': None,
19 'genres': None,
20 'grouping': None,
21 'images': None,
22 'label': None,
23 'languages': None,
24 'last_refresh': None,
25 'links': None,
26 'lrc_lyrics': None,
27 'lyrics': None,
28 'mood': None,
29 'performers': None,
30 'popularity': None,
31 'preview': None,
32 'release_date': None,
33 'review': None,
34 'style': None,
35 }),
36 'name': '[unknown]',
37 'position': None,
38 'provider': 'xx-instance-id-xx',
39 'provider_mappings': list([
40 dict({
41 'audio_format': dict({
42 'bit_depth': 16,
43 'bit_rate': 0,
44 'channels': 2,
45 'codec_type': '?',
46 'content_type': '?',
47 'output_format_str': '?',
48 'sample_rate': 44100,
49 }),
50 'available': True,
51 'details': None,
52 'in_library': None,
53 'is_unique': None,
54 'item_id': 'fake_artist_unknown',
55 'provider_domain': 'opensubsonic',
56 'provider_instance': 'xx-instance-id-xx',
57 'url': None,
58 }),
59 ]),
60 'sort_name': 'unknown]',
61 'translation_key': None,
62 'uri': 'xx-instance-id-xx://artist/fake_artist_unknown',
63 'version': '',
64 }),
65 ]),
66 'date_added': None,
67 'external_ids': list([
68 list([
69 'musicbrainz_albumid',
70 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
71 ]),
72 ]),
73 'favorite': True,
74 'is_playable': True,
75 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
76 'media_type': 'album',
77 'metadata': dict({
78 'chapters': None,
79 'copyright': None,
80 'description': None,
81 'explicit': None,
82 'genres': list([
83 'East coast',
84 'Hip-Hop',
85 ]),
86 'grouping': None,
87 'images': list([
88 dict({
89 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
90 'provider': 'xx-instance-id-xx',
91 'remotely_accessible': False,
92 'type': 'thumb',
93 }),
94 ]),
95 'label': None,
96 'languages': None,
97 'last_refresh': None,
98 'links': None,
99 'lrc_lyrics': None,
100 'lyrics': None,
101 'mood': 'slow',
102 'performers': None,
103 'popularity': None,
104 'preview': None,
105 'release_date': None,
106 'review': None,
107 'style': None,
108 }),
109 'name': '8-bit lagerfeuer',
110 'position': None,
111 'provider': 'opensubsonic',
112 'provider_mappings': list([
113 dict({
114 'audio_format': dict({
115 'bit_depth': 16,
116 'bit_rate': 0,
117 'channels': 2,
118 'codec_type': '?',
119 'content_type': '?',
120 'output_format_str': '?',
121 'sample_rate': 44100,
122 }),
123 'available': True,
124 'details': None,
125 'in_library': None,
126 'is_unique': None,
127 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
128 'provider_domain': 'opensubsonic',
129 'provider_instance': 'xx-instance-id-xx',
130 'url': None,
131 }),
132 ]),
133 'sort_name': 'lagerfeuer (8-bit)',
134 'translation_key': None,
135 'uri': 'opensubsonic://album/ad0f112b6dcf83de5e9cae85d07f0d35',
136 'version': '',
137 'year': 2007,
138 })
139# ---
140# name: test_parse_albums[no-artist.album].1
141 dict({
142 'album_type': 'unknown',
143 'artists': list([
144 dict({
145 'date_added': None,
146 'external_ids': list([
147 ]),
148 'favorite': False,
149 'is_playable': True,
150 'item_id': 'fake_artist_unknown',
151 'media_type': 'artist',
152 'metadata': dict({
153 'chapters': None,
154 'copyright': None,
155 'description': None,
156 'explicit': None,
157 'genres': None,
158 'grouping': None,
159 'images': None,
160 'label': None,
161 'languages': None,
162 'last_refresh': None,
163 'links': None,
164 'lrc_lyrics': None,
165 'lyrics': None,
166 'mood': None,
167 'performers': None,
168 'popularity': None,
169 'preview': None,
170 'release_date': None,
171 'review': None,
172 'style': None,
173 }),
174 'name': '[unknown]',
175 'position': None,
176 'provider': 'xx-instance-id-xx',
177 'provider_mappings': list([
178 dict({
179 'audio_format': dict({
180 'bit_depth': 16,
181 'bit_rate': 0,
182 'channels': 2,
183 'codec_type': '?',
184 'content_type': '?',
185 'output_format_str': '?',
186 'sample_rate': 44100,
187 }),
188 'available': True,
189 'details': None,
190 'in_library': None,
191 'is_unique': None,
192 'item_id': 'fake_artist_unknown',
193 'provider_domain': 'opensubsonic',
194 'provider_instance': 'xx-instance-id-xx',
195 'url': None,
196 }),
197 ]),
198 'sort_name': 'unknown]',
199 'translation_key': None,
200 'uri': 'xx-instance-id-xx://artist/fake_artist_unknown',
201 'version': '',
202 }),
203 ]),
204 'date_added': None,
205 'external_ids': list([
206 list([
207 'musicbrainz_albumid',
208 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
209 ]),
210 ]),
211 'favorite': True,
212 'is_playable': True,
213 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
214 'media_type': 'album',
215 'metadata': dict({
216 'chapters': None,
217 'copyright': None,
218 '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',
219 'explicit': None,
220 'genres': list([
221 'East coast',
222 'Hip-Hop',
223 ]),
224 'grouping': None,
225 'images': list([
226 dict({
227 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
228 'provider': 'xx-instance-id-xx',
229 'remotely_accessible': False,
230 'type': 'thumb',
231 }),
232 dict({
233 'path': 'http://localhost:8989/play/art/0f8c3cbd6b0b22c3b5402141351ac812/album/21/thumb34.jpg',
234 'provider': 'xx-instance-id-xx',
235 'remotely_accessible': True,
236 'type': 'thumb',
237 }),
238 ]),
239 'label': None,
240 'languages': None,
241 'last_refresh': None,
242 'links': None,
243 'lrc_lyrics': None,
244 'lyrics': None,
245 'mood': 'slow',
246 'performers': None,
247 'popularity': None,
248 'preview': None,
249 'release_date': None,
250 'review': None,
251 'style': None,
252 }),
253 'name': '8-bit lagerfeuer',
254 'position': None,
255 'provider': 'opensubsonic',
256 'provider_mappings': list([
257 dict({
258 'audio_format': dict({
259 'bit_depth': 16,
260 'bit_rate': 0,
261 'channels': 2,
262 'codec_type': '?',
263 'content_type': '?',
264 'output_format_str': '?',
265 'sample_rate': 44100,
266 }),
267 'available': True,
268 'details': None,
269 'in_library': None,
270 'is_unique': None,
271 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
272 'provider_domain': 'opensubsonic',
273 'provider_instance': 'xx-instance-id-xx',
274 'url': None,
275 }),
276 ]),
277 'sort_name': 'lagerfeuer (8-bit)',
278 'translation_key': None,
279 'uri': 'opensubsonic://album/ad0f112b6dcf83de5e9cae85d07f0d35',
280 'version': '',
281 'year': 2007,
282 })
283# ---
284# name: test_parse_albums[no-version.album]
285 dict({
286 'album_type': 'unknown',
287 'artists': list([
288 dict({
289 'available': True,
290 'external_ids': list([
291 ]),
292 'image': None,
293 'is_playable': True,
294 'item_id': '91c3901ac465b9efc439e4be4270c2b6',
295 'media_type': 'artist',
296 'name': 'pornophonique',
297 'provider': 'xx-instance-id-xx',
298 'sort_name': 'pornophonique',
299 'translation_key': None,
300 'uri': 'xx-instance-id-xx://artist/91c3901ac465b9efc439e4be4270c2b6',
301 'version': '',
302 'year': None,
303 }),
304 dict({
305 'available': True,
306 'external_ids': list([
307 ]),
308 'image': None,
309 'is_playable': True,
310 'item_id': 'ar-1',
311 'media_type': 'artist',
312 'name': 'Artist 1',
313 'provider': 'xx-instance-id-xx',
314 'sort_name': 'artist 1',
315 'translation_key': None,
316 'uri': 'xx-instance-id-xx://artist/ar-1',
317 'version': '',
318 'year': None,
319 }),
320 dict({
321 'available': True,
322 'external_ids': list([
323 ]),
324 'image': None,
325 'is_playable': True,
326 'item_id': 'ar-2',
327 'media_type': 'artist',
328 'name': 'Artist 2',
329 'provider': 'xx-instance-id-xx',
330 'sort_name': 'artist 2',
331 'translation_key': None,
332 'uri': 'xx-instance-id-xx://artist/ar-2',
333 'version': '',
334 'year': None,
335 }),
336 ]),
337 'date_added': None,
338 'external_ids': list([
339 list([
340 'musicbrainz_albumid',
341 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
342 ]),
343 ]),
344 'favorite': True,
345 'is_playable': True,
346 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
347 'media_type': 'album',
348 'metadata': dict({
349 'chapters': None,
350 'copyright': None,
351 'description': None,
352 'explicit': None,
353 'genres': list([
354 'East coast',
355 'Hip-Hop',
356 ]),
357 'grouping': None,
358 'images': list([
359 dict({
360 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
361 'provider': 'xx-instance-id-xx',
362 'remotely_accessible': False,
363 'type': 'thumb',
364 }),
365 ]),
366 'label': None,
367 'languages': None,
368 'last_refresh': None,
369 'links': None,
370 'lrc_lyrics': None,
371 'lyrics': None,
372 'mood': 'slow',
373 'performers': None,
374 'popularity': None,
375 'preview': None,
376 'release_date': None,
377 'review': None,
378 'style': None,
379 }),
380 'name': '8-bit lagerfeuer',
381 'position': None,
382 'provider': 'opensubsonic',
383 'provider_mappings': list([
384 dict({
385 'audio_format': dict({
386 'bit_depth': 16,
387 'bit_rate': 0,
388 'channels': 2,
389 'codec_type': '?',
390 'content_type': '?',
391 'output_format_str': '?',
392 'sample_rate': 44100,
393 }),
394 'available': True,
395 'details': None,
396 'in_library': None,
397 'is_unique': None,
398 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
399 'provider_domain': 'opensubsonic',
400 'provider_instance': 'xx-instance-id-xx',
401 'url': None,
402 }),
403 ]),
404 'sort_name': 'lagerfeuer (8-bit)',
405 'translation_key': None,
406 'uri': 'opensubsonic://album/ad0f112b6dcf83de5e9cae85d07f0d35',
407 'version': '',
408 'year': 2007,
409 })
410# ---
411# name: test_parse_albums[no-version.album].1
412 dict({
413 'album_type': 'unknown',
414 'artists': list([
415 dict({
416 'available': True,
417 'external_ids': list([
418 ]),
419 'image': None,
420 'is_playable': True,
421 'item_id': '91c3901ac465b9efc439e4be4270c2b6',
422 'media_type': 'artist',
423 'name': 'pornophonique',
424 'provider': 'xx-instance-id-xx',
425 'sort_name': 'pornophonique',
426 'translation_key': None,
427 'uri': 'xx-instance-id-xx://artist/91c3901ac465b9efc439e4be4270c2b6',
428 'version': '',
429 'year': None,
430 }),
431 dict({
432 'available': True,
433 'external_ids': list([
434 ]),
435 'image': None,
436 'is_playable': True,
437 'item_id': 'ar-1',
438 'media_type': 'artist',
439 'name': 'Artist 1',
440 'provider': 'xx-instance-id-xx',
441 'sort_name': 'artist 1',
442 'translation_key': None,
443 'uri': 'xx-instance-id-xx://artist/ar-1',
444 'version': '',
445 'year': None,
446 }),
447 dict({
448 'available': True,
449 'external_ids': list([
450 ]),
451 'image': None,
452 'is_playable': True,
453 'item_id': 'ar-2',
454 'media_type': 'artist',
455 'name': 'Artist 2',
456 'provider': 'xx-instance-id-xx',
457 'sort_name': 'artist 2',
458 'translation_key': None,
459 'uri': 'xx-instance-id-xx://artist/ar-2',
460 'version': '',
461 'year': None,
462 }),
463 ]),
464 'date_added': None,
465 'external_ids': list([
466 list([
467 'musicbrainz_albumid',
468 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
469 ]),
470 ]),
471 'favorite': True,
472 'is_playable': True,
473 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
474 'media_type': 'album',
475 'metadata': dict({
476 'chapters': None,
477 'copyright': None,
478 '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',
479 'explicit': None,
480 'genres': list([
481 'East coast',
482 'Hip-Hop',
483 ]),
484 'grouping': None,
485 'images': list([
486 dict({
487 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
488 'provider': 'xx-instance-id-xx',
489 'remotely_accessible': False,
490 'type': 'thumb',
491 }),
492 dict({
493 'path': 'http://localhost:8989/play/art/0f8c3cbd6b0b22c3b5402141351ac812/album/21/thumb34.jpg',
494 'provider': 'xx-instance-id-xx',
495 'remotely_accessible': True,
496 'type': 'thumb',
497 }),
498 ]),
499 'label': None,
500 'languages': None,
501 'last_refresh': None,
502 'links': None,
503 'lrc_lyrics': None,
504 'lyrics': None,
505 'mood': 'slow',
506 'performers': None,
507 'popularity': None,
508 'preview': None,
509 'release_date': None,
510 'review': None,
511 'style': None,
512 }),
513 'name': '8-bit lagerfeuer',
514 'position': None,
515 'provider': 'opensubsonic',
516 'provider_mappings': list([
517 dict({
518 'audio_format': dict({
519 'bit_depth': 16,
520 'bit_rate': 0,
521 'channels': 2,
522 'codec_type': '?',
523 'content_type': '?',
524 'output_format_str': '?',
525 'sample_rate': 44100,
526 }),
527 'available': True,
528 'details': None,
529 'in_library': None,
530 'is_unique': None,
531 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
532 'provider_domain': 'opensubsonic',
533 'provider_instance': 'xx-instance-id-xx',
534 'url': None,
535 }),
536 ]),
537 'sort_name': 'lagerfeuer (8-bit)',
538 'translation_key': None,
539 'uri': 'opensubsonic://album/ad0f112b6dcf83de5e9cae85d07f0d35',
540 'version': '',
541 'year': 2007,
542 })
543# ---
544# name: test_parse_albums[spec.album]
545 dict({
546 'album_type': 'unknown',
547 'artists': list([
548 dict({
549 'available': True,
550 'external_ids': list([
551 ]),
552 'image': None,
553 'is_playable': True,
554 'item_id': '91c3901ac465b9efc439e4be4270c2b6',
555 'media_type': 'artist',
556 'name': 'pornophonique',
557 'provider': 'xx-instance-id-xx',
558 'sort_name': 'pornophonique',
559 'translation_key': None,
560 'uri': 'xx-instance-id-xx://artist/91c3901ac465b9efc439e4be4270c2b6',
561 'version': '',
562 'year': None,
563 }),
564 dict({
565 'available': True,
566 'external_ids': list([
567 ]),
568 'image': None,
569 'is_playable': True,
570 'item_id': 'ar-1',
571 'media_type': 'artist',
572 'name': 'Artist 1',
573 'provider': 'xx-instance-id-xx',
574 'sort_name': 'artist 1',
575 'translation_key': None,
576 'uri': 'xx-instance-id-xx://artist/ar-1',
577 'version': '',
578 'year': None,
579 }),
580 dict({
581 'available': True,
582 'external_ids': list([
583 ]),
584 'image': None,
585 'is_playable': True,
586 'item_id': 'ar-2',
587 'media_type': 'artist',
588 'name': 'Artist 2',
589 'provider': 'xx-instance-id-xx',
590 'sort_name': 'artist 2',
591 'translation_key': None,
592 'uri': 'xx-instance-id-xx://artist/ar-2',
593 'version': '',
594 'year': None,
595 }),
596 ]),
597 'date_added': None,
598 'external_ids': list([
599 list([
600 'musicbrainz_albumid',
601 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
602 ]),
603 ]),
604 'favorite': True,
605 'is_playable': True,
606 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
607 'media_type': 'album',
608 'metadata': dict({
609 'chapters': None,
610 'copyright': None,
611 'description': None,
612 'explicit': None,
613 'genres': list([
614 'East coast',
615 'Hip-Hop',
616 ]),
617 'grouping': None,
618 'images': list([
619 dict({
620 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
621 'provider': 'xx-instance-id-xx',
622 'remotely_accessible': False,
623 'type': 'thumb',
624 }),
625 ]),
626 'label': None,
627 'languages': None,
628 'last_refresh': None,
629 'links': None,
630 'lrc_lyrics': None,
631 'lyrics': None,
632 'mood': 'slow',
633 'performers': None,
634 'popularity': None,
635 'preview': None,
636 'release_date': None,
637 'review': None,
638 'style': None,
639 }),
640 'name': '8-bit lagerfeuer',
641 'position': None,
642 'provider': 'opensubsonic',
643 'provider_mappings': list([
644 dict({
645 'audio_format': dict({
646 'bit_depth': 16,
647 'bit_rate': 0,
648 'channels': 2,
649 'codec_type': '?',
650 'content_type': '?',
651 'output_format_str': '?',
652 'sample_rate': 44100,
653 }),
654 'available': True,
655 'details': None,
656 'in_library': None,
657 'is_unique': None,
658 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
659 'provider_domain': 'opensubsonic',
660 'provider_instance': 'xx-instance-id-xx',
661 'url': None,
662 }),
663 ]),
664 'sort_name': 'lagerfeuer (8-bit)',
665 'translation_key': None,
666 'uri': 'opensubsonic://album/ad0f112b6dcf83de5e9cae85d07f0d35',
667 'version': 'Deluxe Edition',
668 'year': 2007,
669 })
670# ---
671# name: test_parse_albums[spec.album].1
672 dict({
673 'album_type': 'unknown',
674 'artists': list([
675 dict({
676 'available': True,
677 'external_ids': list([
678 ]),
679 'image': None,
680 'is_playable': True,
681 'item_id': '91c3901ac465b9efc439e4be4270c2b6',
682 'media_type': 'artist',
683 'name': 'pornophonique',
684 'provider': 'xx-instance-id-xx',
685 'sort_name': 'pornophonique',
686 'translation_key': None,
687 'uri': 'xx-instance-id-xx://artist/91c3901ac465b9efc439e4be4270c2b6',
688 'version': '',
689 'year': None,
690 }),
691 dict({
692 'available': True,
693 'external_ids': list([
694 ]),
695 'image': None,
696 'is_playable': True,
697 'item_id': 'ar-1',
698 'media_type': 'artist',
699 'name': 'Artist 1',
700 'provider': 'xx-instance-id-xx',
701 'sort_name': 'artist 1',
702 'translation_key': None,
703 'uri': 'xx-instance-id-xx://artist/ar-1',
704 'version': '',
705 'year': None,
706 }),
707 dict({
708 'available': True,
709 'external_ids': list([
710 ]),
711 'image': None,
712 'is_playable': True,
713 'item_id': 'ar-2',
714 'media_type': 'artist',
715 'name': 'Artist 2',
716 'provider': 'xx-instance-id-xx',
717 'sort_name': 'artist 2',
718 'translation_key': None,
719 'uri': 'xx-instance-id-xx://artist/ar-2',
720 'version': '',
721 'year': None,
722 }),
723 ]),
724 'date_added': None,
725 'external_ids': list([
726 list([
727 'musicbrainz_albumid',
728 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
729 ]),
730 ]),
731 'favorite': True,
732 'is_playable': True,
733 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
734 'media_type': 'album',
735 'metadata': dict({
736 'chapters': None,
737 'copyright': None,
738 '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',
739 'explicit': None,
740 'genres': list([
741 'East coast',
742 'Hip-Hop',
743 ]),
744 'grouping': None,
745 'images': list([
746 dict({
747 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
748 'provider': 'xx-instance-id-xx',
749 'remotely_accessible': False,
750 'type': 'thumb',
751 }),
752 dict({
753 'path': 'http://localhost:8989/play/art/0f8c3cbd6b0b22c3b5402141351ac812/album/21/thumb34.jpg',
754 'provider': 'xx-instance-id-xx',
755 'remotely_accessible': True,
756 'type': 'thumb',
757 }),
758 ]),
759 'label': None,
760 'languages': None,
761 'last_refresh': None,
762 'links': None,
763 'lrc_lyrics': None,
764 'lyrics': None,
765 'mood': 'slow',
766 'performers': None,
767 'popularity': None,
768 'preview': None,
769 'release_date': None,
770 'review': None,
771 'style': None,
772 }),
773 'name': '8-bit lagerfeuer',
774 'position': None,
775 'provider': 'opensubsonic',
776 'provider_mappings': list([
777 dict({
778 'audio_format': dict({
779 'bit_depth': 16,
780 'bit_rate': 0,
781 'channels': 2,
782 'codec_type': '?',
783 'content_type': '?',
784 'output_format_str': '?',
785 'sample_rate': 44100,
786 }),
787 'available': True,
788 'details': None,
789 'in_library': None,
790 'is_unique': None,
791 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
792 'provider_domain': 'opensubsonic',
793 'provider_instance': 'xx-instance-id-xx',
794 'url': None,
795 }),
796 ]),
797 'sort_name': 'lagerfeuer (8-bit)',
798 'translation_key': None,
799 'uri': 'opensubsonic://album/ad0f112b6dcf83de5e9cae85d07f0d35',
800 'version': 'Deluxe Edition',
801 'year': 2007,
802 })
803# ---
804# name: test_parse_artists[no-sort-name.artist]
805 dict({
806 'date_added': None,
807 'external_ids': list([
808 list([
809 'musicbrainz_artistid',
810 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
811 ]),
812 ]),
813 'favorite': True,
814 'is_playable': True,
815 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
816 'media_type': 'artist',
817 'metadata': dict({
818 'chapters': None,
819 'copyright': None,
820 'description': None,
821 'explicit': None,
822 'genres': None,
823 'grouping': None,
824 'images': list([
825 dict({
826 'path': 'https://demo.org/image.jpg',
827 'provider': 'xx-instance-id-xx',
828 'remotely_accessible': True,
829 'type': 'thumb',
830 }),
831 dict({
832 'path': 'ar-37ec820ca7193e17040c98f7da7c4b51_0',
833 'provider': 'xx-instance-id-xx',
834 'remotely_accessible': False,
835 'type': 'thumb',
836 }),
837 ]),
838 'label': None,
839 'languages': None,
840 'last_refresh': None,
841 'links': None,
842 'lrc_lyrics': None,
843 'lyrics': None,
844 'mood': None,
845 'performers': None,
846 'popularity': None,
847 'preview': None,
848 'release_date': None,
849 'review': None,
850 'style': None,
851 }),
852 'name': '2 Mello',
853 'position': None,
854 'provider': 'opensubsonic',
855 'provider_mappings': list([
856 dict({
857 'audio_format': dict({
858 'bit_depth': 16,
859 'bit_rate': 0,
860 'channels': 2,
861 'codec_type': '?',
862 'content_type': '?',
863 'output_format_str': '?',
864 'sample_rate': 44100,
865 }),
866 'available': True,
867 'details': None,
868 'in_library': None,
869 'is_unique': None,
870 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
871 'provider_domain': 'opensubsonic',
872 'provider_instance': 'xx-instance-id-xx',
873 'url': None,
874 }),
875 ]),
876 'sort_name': '2 mello',
877 'translation_key': None,
878 'uri': 'opensubsonic://artist/37ec820ca7193e17040c98f7da7c4b51',
879 'version': '',
880 })
881# ---
882# name: test_parse_artists[no-sort-name.artist].1
883 dict({
884 'date_added': None,
885 'external_ids': list([
886 list([
887 'musicbrainz_artistid',
888 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
889 ]),
890 ]),
891 'favorite': True,
892 'is_playable': True,
893 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
894 'media_type': 'artist',
895 'metadata': dict({
896 'chapters': None,
897 'copyright': None,
898 'description': 'Empty biography',
899 'explicit': None,
900 'genres': None,
901 'grouping': None,
902 'images': list([
903 dict({
904 'path': 'https://demo.org/image.jpg',
905 'provider': 'xx-instance-id-xx',
906 'remotely_accessible': True,
907 'type': 'thumb',
908 }),
909 dict({
910 'path': 'ar-37ec820ca7193e17040c98f7da7c4b51_0',
911 'provider': 'xx-instance-id-xx',
912 'remotely_accessible': False,
913 'type': 'thumb',
914 }),
915 dict({
916 'path': 'http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg',
917 'provider': 'xx-instance-id-xx',
918 'remotely_accessible': True,
919 'type': 'thumb',
920 }),
921 ]),
922 'label': None,
923 'languages': None,
924 'last_refresh': None,
925 'links': None,
926 'lrc_lyrics': None,
927 'lyrics': None,
928 'mood': None,
929 'performers': None,
930 'popularity': None,
931 'preview': None,
932 'release_date': None,
933 'review': None,
934 'style': None,
935 }),
936 'name': '2 Mello',
937 'position': None,
938 'provider': 'opensubsonic',
939 'provider_mappings': list([
940 dict({
941 'audio_format': dict({
942 'bit_depth': 16,
943 'bit_rate': 0,
944 'channels': 2,
945 'codec_type': '?',
946 'content_type': '?',
947 'output_format_str': '?',
948 'sample_rate': 44100,
949 }),
950 'available': True,
951 'details': None,
952 'in_library': None,
953 'is_unique': None,
954 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
955 'provider_domain': 'opensubsonic',
956 'provider_instance': 'xx-instance-id-xx',
957 'url': None,
958 }),
959 ]),
960 'sort_name': '2 mello',
961 'translation_key': None,
962 'uri': 'opensubsonic://artist/37ec820ca7193e17040c98f7da7c4b51',
963 'version': '',
964 })
965# ---
966# name: test_parse_artists[spec-artistid3.artist]
967 dict({
968 'date_added': None,
969 'external_ids': list([
970 list([
971 'musicbrainz_artistid',
972 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
973 ]),
974 ]),
975 'favorite': True,
976 'is_playable': True,
977 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
978 'media_type': 'artist',
979 'metadata': dict({
980 'chapters': None,
981 'copyright': None,
982 'description': None,
983 'explicit': None,
984 'genres': None,
985 'grouping': None,
986 'images': list([
987 dict({
988 'path': 'https://demo.org/image.jpg',
989 'provider': 'xx-instance-id-xx',
990 'remotely_accessible': True,
991 'type': 'thumb',
992 }),
993 dict({
994 'path': 'ar-37ec820ca7193e17040c98f7da7c4b51_0',
995 'provider': 'xx-instance-id-xx',
996 'remotely_accessible': False,
997 'type': 'thumb',
998 }),
999 ]),
1000 'label': None,
1001 'languages': None,
1002 'last_refresh': None,
1003 'links': None,
1004 'lrc_lyrics': None,
1005 'lyrics': None,
1006 'mood': None,
1007 'performers': None,
1008 'popularity': None,
1009 'preview': None,
1010 'release_date': None,
1011 'review': None,
1012 'style': None,
1013 }),
1014 'name': '2 Mello',
1015 'position': None,
1016 'provider': 'opensubsonic',
1017 'provider_mappings': list([
1018 dict({
1019 'audio_format': dict({
1020 'bit_depth': 16,
1021 'bit_rate': 0,
1022 'channels': 2,
1023 'codec_type': '?',
1024 'content_type': '?',
1025 'output_format_str': '?',
1026 'sample_rate': 44100,
1027 }),
1028 'available': True,
1029 'details': None,
1030 'in_library': None,
1031 'is_unique': None,
1032 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
1033 'provider_domain': 'opensubsonic',
1034 'provider_instance': 'xx-instance-id-xx',
1035 'url': None,
1036 }),
1037 ]),
1038 'sort_name': 'Mello (2)',
1039 'translation_key': None,
1040 'uri': 'opensubsonic://artist/37ec820ca7193e17040c98f7da7c4b51',
1041 'version': '',
1042 })
1043# ---
1044# name: test_parse_artists[spec-artistid3.artist].1
1045 dict({
1046 'date_added': None,
1047 'external_ids': list([
1048 list([
1049 'musicbrainz_artistid',
1050 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
1051 ]),
1052 ]),
1053 'favorite': True,
1054 'is_playable': True,
1055 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
1056 'media_type': 'artist',
1057 'metadata': dict({
1058 'chapters': None,
1059 'copyright': None,
1060 'description': 'Empty biography',
1061 'explicit': None,
1062 'genres': None,
1063 'grouping': None,
1064 'images': list([
1065 dict({
1066 'path': 'https://demo.org/image.jpg',
1067 'provider': 'xx-instance-id-xx',
1068 'remotely_accessible': True,
1069 'type': 'thumb',
1070 }),
1071 dict({
1072 'path': 'ar-37ec820ca7193e17040c98f7da7c4b51_0',
1073 'provider': 'xx-instance-id-xx',
1074 'remotely_accessible': False,
1075 'type': 'thumb',
1076 }),
1077 dict({
1078 'path': 'http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg',
1079 'provider': 'xx-instance-id-xx',
1080 'remotely_accessible': True,
1081 'type': 'thumb',
1082 }),
1083 ]),
1084 'label': None,
1085 'languages': None,
1086 'last_refresh': None,
1087 'links': None,
1088 'lrc_lyrics': None,
1089 'lyrics': None,
1090 'mood': None,
1091 'performers': None,
1092 'popularity': None,
1093 'preview': None,
1094 'release_date': None,
1095 'review': None,
1096 'style': None,
1097 }),
1098 'name': '2 Mello',
1099 'position': None,
1100 'provider': 'opensubsonic',
1101 'provider_mappings': list([
1102 dict({
1103 'audio_format': dict({
1104 'bit_depth': 16,
1105 'bit_rate': 0,
1106 'channels': 2,
1107 'codec_type': '?',
1108 'content_type': '?',
1109 'output_format_str': '?',
1110 'sample_rate': 44100,
1111 }),
1112 'available': True,
1113 'details': None,
1114 'in_library': None,
1115 'is_unique': None,
1116 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
1117 'provider_domain': 'opensubsonic',
1118 'provider_instance': 'xx-instance-id-xx',
1119 'url': None,
1120 }),
1121 ]),
1122 'sort_name': 'Mello (2)',
1123 'translation_key': None,
1124 'uri': 'opensubsonic://artist/37ec820ca7193e17040c98f7da7c4b51',
1125 'version': '',
1126 })
1127# ---
1128# name: test_parse_artists[spec-sample.artist]
1129 dict({
1130 'date_added': None,
1131 'external_ids': list([
1132 ]),
1133 'favorite': True,
1134 'is_playable': True,
1135 'item_id': '100000002',
1136 'media_type': 'artist',
1137 'metadata': dict({
1138 'chapters': None,
1139 'copyright': None,
1140 'description': None,
1141 'explicit': None,
1142 'genres': None,
1143 'grouping': None,
1144 'images': list([
1145 dict({
1146 'path': 'ar-100000002',
1147 'provider': 'xx-instance-id-xx',
1148 'remotely_accessible': False,
1149 'type': 'thumb',
1150 }),
1151 ]),
1152 'label': None,
1153 'languages': None,
1154 'last_refresh': None,
1155 'links': None,
1156 'lrc_lyrics': None,
1157 'lyrics': None,
1158 'mood': None,
1159 'performers': None,
1160 'popularity': None,
1161 'preview': None,
1162 'release_date': None,
1163 'review': None,
1164 'style': None,
1165 }),
1166 'name': 'Synthetic',
1167 'position': None,
1168 'provider': 'opensubsonic',
1169 'provider_mappings': list([
1170 dict({
1171 'audio_format': dict({
1172 'bit_depth': 16,
1173 'bit_rate': 0,
1174 'channels': 2,
1175 'codec_type': '?',
1176 'content_type': '?',
1177 'output_format_str': '?',
1178 'sample_rate': 44100,
1179 }),
1180 'available': True,
1181 'details': None,
1182 'in_library': None,
1183 'is_unique': None,
1184 'item_id': '100000002',
1185 'provider_domain': 'opensubsonic',
1186 'provider_instance': 'xx-instance-id-xx',
1187 'url': None,
1188 }),
1189 ]),
1190 'sort_name': 'synthetic',
1191 'translation_key': None,
1192 'uri': 'opensubsonic://artist/100000002',
1193 'version': '',
1194 })
1195# ---
1196# name: test_parse_artists[spec-sample.artist].1
1197 dict({
1198 'date_added': None,
1199 'external_ids': list([
1200 ]),
1201 'favorite': True,
1202 'is_playable': True,
1203 'item_id': '100000002',
1204 'media_type': 'artist',
1205 'metadata': dict({
1206 'chapters': None,
1207 'copyright': None,
1208 'description': 'Empty biography',
1209 'explicit': None,
1210 'genres': None,
1211 'grouping': None,
1212 'images': list([
1213 dict({
1214 'path': 'ar-100000002',
1215 'provider': 'xx-instance-id-xx',
1216 'remotely_accessible': False,
1217 'type': 'thumb',
1218 }),
1219 dict({
1220 'path': 'http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg',
1221 'provider': 'xx-instance-id-xx',
1222 'remotely_accessible': True,
1223 'type': 'thumb',
1224 }),
1225 ]),
1226 'label': None,
1227 'languages': None,
1228 'last_refresh': None,
1229 'links': None,
1230 'lrc_lyrics': None,
1231 'lyrics': None,
1232 'mood': None,
1233 'performers': None,
1234 'popularity': None,
1235 'preview': None,
1236 'release_date': None,
1237 'review': None,
1238 'style': None,
1239 }),
1240 'name': 'Synthetic',
1241 'position': None,
1242 'provider': 'opensubsonic',
1243 'provider_mappings': list([
1244 dict({
1245 'audio_format': dict({
1246 'bit_depth': 16,
1247 'bit_rate': 0,
1248 'channels': 2,
1249 'codec_type': '?',
1250 'content_type': '?',
1251 'output_format_str': '?',
1252 'sample_rate': 44100,
1253 }),
1254 'available': True,
1255 'details': None,
1256 'in_library': None,
1257 'is_unique': None,
1258 'item_id': '100000002',
1259 'provider_domain': 'opensubsonic',
1260 'provider_instance': 'xx-instance-id-xx',
1261 'url': None,
1262 }),
1263 ]),
1264 'sort_name': 'synthetic',
1265 'translation_key': None,
1266 'uri': 'opensubsonic://artist/100000002',
1267 'version': '',
1268 })
1269# ---
1270# name: test_parse_episode[gonic-sample.episode]
1271 dict({
1272 'date_added': None,
1273 'duration': 1878,
1274 'external_ids': list([
1275 ]),
1276 'favorite': False,
1277 'fully_played': None,
1278 'is_playable': True,
1279 'item_id': 'pd-5$!$pe-1860',
1280 'media_type': 'podcast_episode',
1281 'metadata': dict({
1282 'chapters': None,
1283 'copyright': None,
1284 'description': 'The history of The History of Rome...Why the Western Empire Fell when it did...Some thoughts on the future...Thank you, goodnight.',
1285 'explicit': None,
1286 'genres': None,
1287 'grouping': None,
1288 'images': list([
1289 dict({
1290 'path': 'pd-5',
1291 'provider': 'xx-instance-id-xx',
1292 'remotely_accessible': False,
1293 'type': 'thumb',
1294 }),
1295 ]),
1296 'label': None,
1297 'languages': None,
1298 'last_refresh': None,
1299 'links': None,
1300 'lrc_lyrics': None,
1301 'lyrics': None,
1302 'mood': None,
1303 'performers': None,
1304 'popularity': None,
1305 'preview': None,
1306 'release_date': '2012-05-06T18:18:38+00:00',
1307 'review': None,
1308 'style': None,
1309 }),
1310 'name': '179- The End',
1311 'podcast': dict({
1312 'date_added': None,
1313 'external_ids': list([
1314 ]),
1315 'favorite': False,
1316 'is_playable': True,
1317 'item_id': 'pd-5',
1318 'media_type': 'podcast',
1319 'metadata': dict({
1320 'chapters': None,
1321 'copyright': None,
1322 'description': 'A weekly podcast tracing the rise, decline and fall of the Roman Empire. Now complete!',
1323 'explicit': None,
1324 'genres': None,
1325 'grouping': None,
1326 'images': list([
1327 dict({
1328 'path': 'pd-5',
1329 'provider': 'xx-instance-id-xx',
1330 'remotely_accessible': False,
1331 'type': 'thumb',
1332 }),
1333 ]),
1334 'label': None,
1335 'languages': None,
1336 'last_refresh': None,
1337 'links': None,
1338 'lrc_lyrics': None,
1339 'lyrics': None,
1340 'mood': None,
1341 'performers': None,
1342 'popularity': None,
1343 'preview': None,
1344 'release_date': None,
1345 'review': None,
1346 'style': None,
1347 }),
1348 'name': 'The History of Rome',
1349 'position': None,
1350 'provider': 'opensubsonic',
1351 'provider_mappings': list([
1352 dict({
1353 'audio_format': dict({
1354 'bit_depth': 16,
1355 'bit_rate': 0,
1356 'channels': 2,
1357 'codec_type': '?',
1358 'content_type': '?',
1359 'output_format_str': '?',
1360 'sample_rate': 44100,
1361 }),
1362 'available': True,
1363 'details': None,
1364 'in_library': None,
1365 'is_unique': None,
1366 'item_id': 'pd-5',
1367 'provider_domain': 'opensubsonic',
1368 'provider_instance': 'xx-instance-id-xx',
1369 'url': None,
1370 }),
1371 ]),
1372 'publisher': None,
1373 'sort_name': 'history of rome, the',
1374 'total_episodes': 5,
1375 'translation_key': None,
1376 'uri': 'http://feeds.feedburner.com/TheHistoryOfRome',
1377 'version': '',
1378 }),
1379 'position': 5,
1380 'provider': 'opensubsonic',
1381 'provider_mappings': list([
1382 dict({
1383 'audio_format': dict({
1384 'bit_depth': 16,
1385 'bit_rate': 0,
1386 'channels': 2,
1387 'codec_type': '?',
1388 'content_type': '?',
1389 'output_format_str': '?',
1390 'sample_rate': 44100,
1391 }),
1392 'available': True,
1393 'details': None,
1394 'in_library': None,
1395 'is_unique': None,
1396 'item_id': 'pd-5$!$pe-1860',
1397 'provider_domain': 'opensubsonic',
1398 'provider_instance': 'xx-instance-id-xx',
1399 'url': None,
1400 }),
1401 ]),
1402 'resume_position_ms': None,
1403 'sort_name': '179- the end',
1404 'translation_key': None,
1405 'uri': 'opensubsonic://podcast_episode/pd-5$!$pe-1860',
1406 'version': '',
1407 })
1408# ---
1409# name: test_parse_episode[no-cover.episode]
1410 dict({
1411 'date_added': None,
1412 'duration': 0,
1413 'external_ids': list([
1414 ]),
1415 'favorite': False,
1416 'fully_played': None,
1417 'is_playable': True,
1418 'item_id': 'pd-5$!$pe-1860',
1419 'media_type': 'podcast_episode',
1420 'metadata': dict({
1421 'chapters': None,
1422 'copyright': None,
1423 'description': 'The history of The History of Rome...Why the Western Empire Fell when it did...Some thoughts on the future...Thank you, goodnight.',
1424 'explicit': None,
1425 'genres': None,
1426 'grouping': None,
1427 'images': list([
1428 dict({
1429 'path': 'pd-5',
1430 'provider': 'xx-instance-id-xx',
1431 'remotely_accessible': False,
1432 'type': 'thumb',
1433 }),
1434 ]),
1435 'label': None,
1436 'languages': None,
1437 'last_refresh': None,
1438 'links': None,
1439 'lrc_lyrics': None,
1440 'lyrics': None,
1441 'mood': None,
1442 'performers': None,
1443 'popularity': None,
1444 'preview': None,
1445 'release_date': '2012-05-06T18:18:38+00:00',
1446 'review': None,
1447 'style': None,
1448 }),
1449 'name': '179- The End',
1450 'podcast': dict({
1451 'date_added': None,
1452 'external_ids': list([
1453 ]),
1454 'favorite': False,
1455 'is_playable': True,
1456 'item_id': 'pd-5',
1457 'media_type': 'podcast',
1458 'metadata': dict({
1459 'chapters': None,
1460 'copyright': None,
1461 'description': 'A weekly podcast tracing the rise, decline and fall of the Roman Empire. Now complete!',
1462 'explicit': None,
1463 'genres': None,
1464 'grouping': None,
1465 'images': list([
1466 dict({
1467 'path': 'pd-5',
1468 'provider': 'xx-instance-id-xx',
1469 'remotely_accessible': False,
1470 'type': 'thumb',
1471 }),
1472 ]),
1473 'label': None,
1474 'languages': None,
1475 'last_refresh': None,
1476 'links': None,
1477 'lrc_lyrics': None,
1478 'lyrics': None,
1479 'mood': None,
1480 'performers': None,
1481 'popularity': None,
1482 'preview': None,
1483 'release_date': None,
1484 'review': None,
1485 'style': None,
1486 }),
1487 'name': 'The History of Rome',
1488 'position': None,
1489 'provider': 'opensubsonic',
1490 'provider_mappings': list([
1491 dict({
1492 'audio_format': dict({
1493 'bit_depth': 16,
1494 'bit_rate': 0,
1495 'channels': 2,
1496 'codec_type': '?',
1497 'content_type': '?',
1498 'output_format_str': '?',
1499 'sample_rate': 44100,
1500 }),
1501 'available': True,
1502 'details': None,
1503 'in_library': None,
1504 'is_unique': None,
1505 'item_id': 'pd-5',
1506 'provider_domain': 'opensubsonic',
1507 'provider_instance': 'xx-instance-id-xx',
1508 'url': None,
1509 }),
1510 ]),
1511 'publisher': None,
1512 'sort_name': 'history of rome, the',
1513 'total_episodes': 5,
1514 'translation_key': None,
1515 'uri': 'http://feeds.feedburner.com/TheHistoryOfRome',
1516 'version': '',
1517 }),
1518 'position': 5,
1519 'provider': 'opensubsonic',
1520 'provider_mappings': list([
1521 dict({
1522 'audio_format': dict({
1523 'bit_depth': 16,
1524 'bit_rate': 0,
1525 'channels': 2,
1526 'codec_type': '?',
1527 'content_type': '?',
1528 'output_format_str': '?',
1529 'sample_rate': 44100,
1530 }),
1531 'available': True,
1532 'details': None,
1533 'in_library': None,
1534 'is_unique': None,
1535 'item_id': 'pd-5$!$pe-1860',
1536 'provider_domain': 'opensubsonic',
1537 'provider_instance': 'xx-instance-id-xx',
1538 'url': None,
1539 }),
1540 ]),
1541 'resume_position_ms': None,
1542 'sort_name': '179- the end',
1543 'translation_key': None,
1544 'uri': 'opensubsonic://podcast_episode/pd-5$!$pe-1860',
1545 'version': '',
1546 })
1547# ---
1548# name: test_parse_episode[no-duration.episode]
1549 dict({
1550 'date_added': None,
1551 'duration': 0,
1552 'external_ids': list([
1553 ]),
1554 'favorite': False,
1555 'fully_played': None,
1556 'is_playable': True,
1557 'item_id': 'pd-5$!$pe-1860',
1558 'media_type': 'podcast_episode',
1559 'metadata': dict({
1560 'chapters': None,
1561 'copyright': None,
1562 'description': 'The history of The History of Rome...Why the Western Empire Fell when it did...Some thoughts on the future...Thank you, goodnight.',
1563 'explicit': None,
1564 'genres': None,
1565 'grouping': None,
1566 'images': list([
1567 dict({
1568 'path': 'pd-5',
1569 'provider': 'xx-instance-id-xx',
1570 'remotely_accessible': False,
1571 'type': 'thumb',
1572 }),
1573 ]),
1574 'label': None,
1575 'languages': None,
1576 'last_refresh': None,
1577 'links': None,
1578 'lrc_lyrics': None,
1579 'lyrics': None,
1580 'mood': None,
1581 'performers': None,
1582 'popularity': None,
1583 'preview': None,
1584 'release_date': '2012-05-06T18:18:38+00:00',
1585 'review': None,
1586 'style': None,
1587 }),
1588 'name': '179- The End',
1589 'podcast': dict({
1590 'date_added': None,
1591 'external_ids': list([
1592 ]),
1593 'favorite': False,
1594 'is_playable': True,
1595 'item_id': 'pd-5',
1596 'media_type': 'podcast',
1597 'metadata': dict({
1598 'chapters': None,
1599 'copyright': None,
1600 'description': 'A weekly podcast tracing the rise, decline and fall of the Roman Empire. Now complete!',
1601 'explicit': None,
1602 'genres': None,
1603 'grouping': None,
1604 'images': list([
1605 dict({
1606 'path': 'pd-5',
1607 'provider': 'xx-instance-id-xx',
1608 'remotely_accessible': False,
1609 'type': 'thumb',
1610 }),
1611 ]),
1612 'label': None,
1613 'languages': None,
1614 'last_refresh': None,
1615 'links': None,
1616 'lrc_lyrics': None,
1617 'lyrics': None,
1618 'mood': None,
1619 'performers': None,
1620 'popularity': None,
1621 'preview': None,
1622 'release_date': None,
1623 'review': None,
1624 'style': None,
1625 }),
1626 'name': 'The History of Rome',
1627 'position': None,
1628 'provider': 'opensubsonic',
1629 'provider_mappings': list([
1630 dict({
1631 'audio_format': dict({
1632 'bit_depth': 16,
1633 'bit_rate': 0,
1634 'channels': 2,
1635 'codec_type': '?',
1636 'content_type': '?',
1637 'output_format_str': '?',
1638 'sample_rate': 44100,
1639 }),
1640 'available': True,
1641 'details': None,
1642 'in_library': None,
1643 'is_unique': None,
1644 'item_id': 'pd-5',
1645 'provider_domain': 'opensubsonic',
1646 'provider_instance': 'xx-instance-id-xx',
1647 'url': None,
1648 }),
1649 ]),
1650 'publisher': None,
1651 'sort_name': 'history of rome, the',
1652 'total_episodes': 5,
1653 'translation_key': None,
1654 'uri': 'http://feeds.feedburner.com/TheHistoryOfRome',
1655 'version': '',
1656 }),
1657 'position': 5,
1658 'provider': 'opensubsonic',
1659 'provider_mappings': list([
1660 dict({
1661 'audio_format': dict({
1662 'bit_depth': 16,
1663 'bit_rate': 0,
1664 'channels': 2,
1665 'codec_type': '?',
1666 'content_type': '?',
1667 'output_format_str': '?',
1668 'sample_rate': 44100,
1669 }),
1670 'available': True,
1671 'details': None,
1672 'in_library': None,
1673 'is_unique': None,
1674 'item_id': 'pd-5$!$pe-1860',
1675 'provider_domain': 'opensubsonic',
1676 'provider_instance': 'xx-instance-id-xx',
1677 'url': None,
1678 }),
1679 ]),
1680 'resume_position_ms': None,
1681 'sort_name': '179- the end',
1682 'translation_key': None,
1683 'uri': 'opensubsonic://podcast_episode/pd-5$!$pe-1860',
1684 'version': '',
1685 })
1686# ---
1687# name: test_parse_playlist[gonic-sample.playlist]
1688 dict({
1689 'date_added': None,
1690 'external_ids': list([
1691 ]),
1692 'favorite': False,
1693 'is_editable': True,
1694 'is_playable': True,
1695 'item_id': 'Mi8xNzQzNzg5NTk5MzM1LTE3NDM3ODk1OTkzMzUubTN1',
1696 'media_type': 'playlist',
1697 'metadata': dict({
1698 'chapters': None,
1699 'copyright': None,
1700 'description': None,
1701 'explicit': None,
1702 'genres': None,
1703 'grouping': None,
1704 'images': list([
1705 dict({
1706 'path': 'al-2250',
1707 'provider': 'xx-instance-id-xx',
1708 'remotely_accessible': False,
1709 'type': 'thumb',
1710 }),
1711 ]),
1712 'label': None,
1713 'languages': None,
1714 'last_refresh': None,
1715 'links': None,
1716 'lrc_lyrics': None,
1717 'lyrics': None,
1718 'mood': None,
1719 'performers': None,
1720 'popularity': None,
1721 'preview': None,
1722 'release_date': None,
1723 'review': None,
1724 'style': None,
1725 }),
1726 'name': "Guns N' Roses - Use Your Illusion",
1727 'owner': '',
1728 'position': None,
1729 'provider': 'opensubsonic',
1730 'provider_mappings': list([
1731 dict({
1732 'audio_format': dict({
1733 'bit_depth': 16,
1734 'bit_rate': 0,
1735 'channels': 2,
1736 'codec_type': '?',
1737 'content_type': '?',
1738 'output_format_str': '?',
1739 'sample_rate': 44100,
1740 }),
1741 'available': True,
1742 'details': None,
1743 'in_library': None,
1744 'is_unique': None,
1745 'item_id': 'Mi8xNzQzNzg5NTk5MzM1LTE3NDM3ODk1OTkzMzUubTN1',
1746 'provider_domain': 'opensubsonic',
1747 'provider_instance': 'xx-instance-id-xx',
1748 'url': None,
1749 }),
1750 ]),
1751 'sort_name': "guns n' roses - use your illusion",
1752 'translation_key': None,
1753 'uri': 'opensubsonic://playlist/Mi8xNzQzNzg5NTk5MzM1LTE3NDM3ODk1OTkzMzUubTN1',
1754 'version': '',
1755 })
1756# ---
1757# name: test_parse_podcast[gonic-sample.podcast]
1758 dict({
1759 'date_added': None,
1760 'external_ids': list([
1761 ]),
1762 'favorite': False,
1763 'is_playable': True,
1764 'item_id': 'pd-5',
1765 'media_type': 'podcast',
1766 'metadata': dict({
1767 'chapters': None,
1768 'copyright': None,
1769 'description': 'A weekly podcast tracing the rise, decline and fall of the Roman Empire. Now complete!',
1770 'explicit': None,
1771 'genres': None,
1772 'grouping': None,
1773 'images': list([
1774 dict({
1775 'path': 'pd-5',
1776 'provider': 'xx-instance-id-xx',
1777 'remotely_accessible': False,
1778 'type': 'thumb',
1779 }),
1780 ]),
1781 'label': None,
1782 'languages': None,
1783 'last_refresh': None,
1784 'links': None,
1785 'lrc_lyrics': None,
1786 'lyrics': None,
1787 'mood': None,
1788 'performers': None,
1789 'popularity': None,
1790 'preview': None,
1791 'release_date': None,
1792 'review': None,
1793 'style': None,
1794 }),
1795 'name': 'The History of Rome',
1796 'position': None,
1797 'provider': 'opensubsonic',
1798 'provider_mappings': list([
1799 dict({
1800 'audio_format': dict({
1801 'bit_depth': 16,
1802 'bit_rate': 0,
1803 'channels': 2,
1804 'codec_type': '?',
1805 'content_type': '?',
1806 'output_format_str': '?',
1807 'sample_rate': 44100,
1808 }),
1809 'available': True,
1810 'details': None,
1811 'in_library': None,
1812 'is_unique': None,
1813 'item_id': 'pd-5',
1814 'provider_domain': 'opensubsonic',
1815 'provider_instance': 'xx-instance-id-xx',
1816 'url': None,
1817 }),
1818 ]),
1819 'publisher': None,
1820 'sort_name': 'history of rome, the',
1821 'total_episodes': 5,
1822 'translation_key': None,
1823 'uri': 'http://feeds.feedburner.com/TheHistoryOfRome',
1824 'version': '',
1825 })
1826# ---
1827# name: test_parse_podcast[no-episodes.podcast]
1828 dict({
1829 'date_added': None,
1830 'external_ids': list([
1831 ]),
1832 'favorite': False,
1833 'is_playable': True,
1834 'item_id': 'pd-5',
1835 'media_type': 'podcast',
1836 'metadata': dict({
1837 'chapters': None,
1838 'copyright': None,
1839 'description': 'A weekly podcast tracing the rise, decline and fall of the Roman Empire. Now complete!',
1840 'explicit': None,
1841 'genres': None,
1842 'grouping': None,
1843 'images': list([
1844 dict({
1845 'path': 'pd-5',
1846 'provider': 'xx-instance-id-xx',
1847 'remotely_accessible': False,
1848 'type': 'thumb',
1849 }),
1850 ]),
1851 'label': None,
1852 'languages': None,
1853 'last_refresh': None,
1854 'links': None,
1855 'lrc_lyrics': None,
1856 'lyrics': None,
1857 'mood': None,
1858 'performers': None,
1859 'popularity': None,
1860 'preview': None,
1861 'release_date': None,
1862 'review': None,
1863 'style': None,
1864 }),
1865 'name': 'The History of Rome',
1866 'position': None,
1867 'provider': 'opensubsonic',
1868 'provider_mappings': list([
1869 dict({
1870 'audio_format': dict({
1871 'bit_depth': 16,
1872 'bit_rate': 0,
1873 'channels': 2,
1874 'codec_type': '?',
1875 'content_type': '?',
1876 'output_format_str': '?',
1877 'sample_rate': 44100,
1878 }),
1879 'available': True,
1880 'details': None,
1881 'in_library': None,
1882 'is_unique': None,
1883 'item_id': 'pd-5',
1884 'provider_domain': 'opensubsonic',
1885 'provider_instance': 'xx-instance-id-xx',
1886 'url': None,
1887 }),
1888 ]),
1889 'publisher': None,
1890 'sort_name': 'history of rome, the',
1891 'total_episodes': 0,
1892 'translation_key': None,
1893 'uri': 'http://feeds.feedburner.com/TheHistoryOfRome',
1894 'version': '',
1895 })
1896# ---
1897# name: test_parse_track[missing-items.track]
1898 dict({
1899 'album': dict({
1900 'available': True,
1901 'external_ids': list([
1902 ]),
1903 'image': None,
1904 'is_playable': True,
1905 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
1906 'media_type': 'album',
1907 'name': 'Live at The Casbah - 2005-04-29',
1908 'provider': 'xx-instance-id-xx',
1909 'sort_name': 'live at the casbah - 2005-04-29',
1910 'translation_key': None,
1911 'uri': 'xx-instance-id-xx://album/e8a0685e3f3ec6f251649af2b58b8617',
1912 'version': '',
1913 'year': None,
1914 }),
1915 'artists': list([
1916 dict({
1917 'date_added': None,
1918 'external_ids': list([
1919 ]),
1920 'favorite': False,
1921 'is_playable': True,
1922 'item_id': 'fake_artist_unknown',
1923 'media_type': 'artist',
1924 'metadata': dict({
1925 'chapters': None,
1926 'copyright': None,
1927 'description': None,
1928 'explicit': None,
1929 'genres': None,
1930 'grouping': None,
1931 'images': None,
1932 'label': None,
1933 'languages': None,
1934 'last_refresh': None,
1935 'links': None,
1936 'lrc_lyrics': None,
1937 'lyrics': None,
1938 'mood': None,
1939 'performers': None,
1940 'popularity': None,
1941 'preview': None,
1942 'release_date': None,
1943 'review': None,
1944 'style': None,
1945 }),
1946 'name': '[unknown]',
1947 'position': None,
1948 'provider': 'xx-instance-id-xx',
1949 'provider_mappings': list([
1950 dict({
1951 'audio_format': dict({
1952 'bit_depth': 16,
1953 'bit_rate': 0,
1954 'channels': 2,
1955 'codec_type': '?',
1956 'content_type': '?',
1957 'output_format_str': '?',
1958 'sample_rate': 44100,
1959 }),
1960 'available': True,
1961 'details': None,
1962 'in_library': None,
1963 'is_unique': None,
1964 'item_id': 'fake_artist_unknown',
1965 'provider_domain': 'opensubsonic',
1966 'provider_instance': 'xx-instance-id-xx',
1967 'url': None,
1968 }),
1969 ]),
1970 'sort_name': 'unknown]',
1971 'translation_key': None,
1972 'uri': 'xx-instance-id-xx://artist/fake_artist_unknown',
1973 'version': '',
1974 }),
1975 ]),
1976 'date_added': None,
1977 'disc_number': 0,
1978 'duration': 0,
1979 'external_ids': list([
1980 list([
1981 'musicbrainz_recordingid',
1982 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
1983 ]),
1984 ]),
1985 'favorite': True,
1986 'is_playable': True,
1987 'item_id': '082f435a363c32c57d5edb6a678a28d4',
1988 'last_played': 0,
1989 'media_type': 'track',
1990 'metadata': dict({
1991 'chapters': None,
1992 'copyright': None,
1993 'description': None,
1994 'explicit': True,
1995 'genres': list([
1996 'East coast',
1997 'Hip-Hop',
1998 ]),
1999 'grouping': None,
2000 'images': None,
2001 'label': None,
2002 'languages': None,
2003 'last_refresh': None,
2004 'links': None,
2005 'lrc_lyrics': None,
2006 'lyrics': None,
2007 'mood': 'slow',
2008 'performers': list([
2009 'Artist 3',
2010 'Artist 4',
2011 'Artist 5',
2012 ]),
2013 'popularity': None,
2014 'preview': None,
2015 'release_date': None,
2016 'review': None,
2017 'style': None,
2018 }),
2019 'name': '"polar expedition"',
2020 'position': None,
2021 'provider': 'xx-instance-id-xx',
2022 'provider_mappings': list([
2023 dict({
2024 'audio_format': dict({
2025 'bit_depth': 16,
2026 'bit_rate': 0,
2027 'channels': 2,
2028 'codec_type': '?',
2029 'content_type': '?',
2030 'output_format_str': '?',
2031 'sample_rate': 44100,
2032 }),
2033 'available': True,
2034 'details': None,
2035 'in_library': None,
2036 'is_unique': None,
2037 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2038 'provider_domain': 'opensubsonic',
2039 'provider_instance': 'xx-instance-id-xx',
2040 'url': None,
2041 }),
2042 ]),
2043 'sort_name': 'Polar expedition',
2044 'track_number': 0,
2045 'translation_key': None,
2046 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
2047 'version': '',
2048 })
2049# ---
2050# name: test_parse_track[missing-items.track].1
2051 dict({
2052 'album': dict({
2053 'artist': 'pornophonique',
2054 'artistId': '97e0398acf63f9fb930d7d4ce209a52b',
2055 'artists': list([
2056 dict({
2057 'id': 'ar-1',
2058 'name': 'Artist 1',
2059 }),
2060 dict({
2061 'id': 'ar-2',
2062 'name': 'Artist 2',
2063 }),
2064 ]),
2065 'coverArt': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
2066 'created': '2023-03-10T02:19:35.784818075Z',
2067 'discTitles': list([
2068 dict({
2069 'disc': 0,
2070 'title': 'Disc 0 title',
2071 }),
2072 dict({
2073 'disc': 2,
2074 'title': 'Disc 1 title',
2075 }),
2076 ]),
2077 'displayArtist': 'Artist 1 feat. Artist 2',
2078 'duration': 1954,
2079 'explicitStatus': 'explicit',
2080 'genre': 'Hip-Hop',
2081 'genres': list([
2082 dict({
2083 'name': 'Hip-Hop',
2084 }),
2085 dict({
2086 'name': 'East coast',
2087 }),
2088 ]),
2089 'id': 'e8a0685e3f3ec6f251649af2b58b8617',
2090 'isCompilation': False,
2091 'moods': list([
2092 'slow',
2093 'cool',
2094 ]),
2095 'musicBrainzId': '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2096 'name': 'Live at The Casbah - 2005-04-29',
2097 'originalReleaseDate': dict({
2098 'day': 10,
2099 'month': 3,
2100 'year': 2001,
2101 }),
2102 'playCount': 97,
2103 'played': '2023-03-28T00:45:13Z',
2104 'releaseDate': dict({
2105 'day': 10,
2106 'month': 3,
2107 'year': 2001,
2108 }),
2109 'releaseTypes': list([
2110 'Album',
2111 'Remixes',
2112 ]),
2113 'songCount': 8,
2114 'sortName': 'lagerfeuer (8-bit)',
2115 'starred': '2023-03-22T01:51:06Z',
2116 'userRating': 4,
2117 'version': 'Deluxe Edition',
2118 'year': 2007,
2119 }),
2120 'artists': list([
2121 dict({
2122 'date_added': None,
2123 'external_ids': list([
2124 ]),
2125 'favorite': False,
2126 'is_playable': True,
2127 'item_id': 'fake_artist_unknown',
2128 'media_type': 'artist',
2129 'metadata': dict({
2130 'chapters': None,
2131 'copyright': None,
2132 'description': None,
2133 'explicit': None,
2134 'genres': None,
2135 'grouping': None,
2136 'images': None,
2137 'label': None,
2138 'languages': None,
2139 'last_refresh': None,
2140 'links': None,
2141 'lrc_lyrics': None,
2142 'lyrics': None,
2143 'mood': None,
2144 'performers': None,
2145 'popularity': None,
2146 'preview': None,
2147 'release_date': None,
2148 'review': None,
2149 'style': None,
2150 }),
2151 'name': '[unknown]',
2152 'position': None,
2153 'provider': 'xx-instance-id-xx',
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': 'fake_artist_unknown',
2170 'provider_domain': 'opensubsonic',
2171 'provider_instance': 'xx-instance-id-xx',
2172 'url': None,
2173 }),
2174 ]),
2175 'sort_name': 'unknown]',
2176 'translation_key': None,
2177 'uri': 'xx-instance-id-xx://artist/fake_artist_unknown',
2178 'version': '',
2179 }),
2180 ]),
2181 'date_added': None,
2182 'disc_number': 0,
2183 'duration': 0,
2184 'external_ids': list([
2185 list([
2186 'musicbrainz_recordingid',
2187 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2188 ]),
2189 ]),
2190 'favorite': True,
2191 'is_playable': True,
2192 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2193 'last_played': 0,
2194 'media_type': 'track',
2195 'metadata': dict({
2196 'chapters': None,
2197 'copyright': None,
2198 'description': None,
2199 'explicit': True,
2200 'genres': list([
2201 'East coast',
2202 'Hip-Hop',
2203 ]),
2204 'grouping': None,
2205 'images': None,
2206 'label': None,
2207 'languages': None,
2208 'last_refresh': None,
2209 'links': None,
2210 'lrc_lyrics': None,
2211 'lyrics': None,
2212 'mood': 'slow',
2213 'performers': list([
2214 'Artist 3',
2215 'Artist 4',
2216 'Artist 5',
2217 ]),
2218 'popularity': None,
2219 'preview': None,
2220 'release_date': None,
2221 'review': None,
2222 'style': None,
2223 }),
2224 'name': '"polar expedition"',
2225 'position': None,
2226 'provider': 'xx-instance-id-xx',
2227 'provider_mappings': list([
2228 dict({
2229 'audio_format': dict({
2230 'bit_depth': 16,
2231 'bit_rate': 0,
2232 'channels': 2,
2233 'codec_type': '?',
2234 'content_type': '?',
2235 'output_format_str': '?',
2236 'sample_rate': 44100,
2237 }),
2238 'available': True,
2239 'details': None,
2240 'in_library': None,
2241 'is_unique': None,
2242 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2243 'provider_domain': 'opensubsonic',
2244 'provider_instance': 'xx-instance-id-xx',
2245 'url': None,
2246 }),
2247 ]),
2248 'sort_name': 'Polar expedition',
2249 'track_number': 0,
2250 'translation_key': None,
2251 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
2252 'version': '',
2253 })
2254# ---
2255# name: test_parse_track[navi-various.track]
2256 dict({
2257 'album': dict({
2258 'available': True,
2259 'external_ids': list([
2260 ]),
2261 'image': None,
2262 'is_playable': True,
2263 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
2264 'media_type': 'album',
2265 'name': 'Live at The Casbah - 2005-04-29',
2266 'provider': 'xx-instance-id-xx',
2267 'sort_name': 'live at the casbah - 2005-04-29',
2268 'translation_key': None,
2269 'uri': 'xx-instance-id-xx://album/e8a0685e3f3ec6f251649af2b58b8617',
2270 'version': '',
2271 'year': None,
2272 }),
2273 'artists': list([
2274 dict({
2275 'date_added': None,
2276 'external_ids': list([
2277 ]),
2278 'favorite': False,
2279 'is_playable': True,
2280 'item_id': 'MA-NAVIDROME-The New Deal',
2281 'media_type': 'artist',
2282 'metadata': dict({
2283 'chapters': None,
2284 'copyright': None,
2285 'description': None,
2286 'explicit': None,
2287 'genres': None,
2288 'grouping': None,
2289 'images': None,
2290 'label': None,
2291 'languages': None,
2292 'last_refresh': None,
2293 'links': None,
2294 'lrc_lyrics': None,
2295 'lyrics': None,
2296 'mood': None,
2297 'performers': None,
2298 'popularity': None,
2299 'preview': None,
2300 'release_date': None,
2301 'review': None,
2302 'style': None,
2303 }),
2304 'name': 'The New Deal',
2305 'position': None,
2306 'provider': 'opensubsonic',
2307 'provider_mappings': list([
2308 dict({
2309 'audio_format': dict({
2310 'bit_depth': 16,
2311 'bit_rate': 0,
2312 'channels': 2,
2313 'codec_type': '?',
2314 'content_type': '?',
2315 'output_format_str': '?',
2316 'sample_rate': 44100,
2317 }),
2318 'available': True,
2319 'details': None,
2320 'in_library': None,
2321 'is_unique': None,
2322 'item_id': 'MA-NAVIDROME-The New Deal',
2323 'provider_domain': 'opensubsonic',
2324 'provider_instance': 'xx-instance-id-xx',
2325 'url': None,
2326 }),
2327 ]),
2328 'sort_name': 'new deal, the',
2329 'translation_key': None,
2330 'uri': 'opensubsonic://artist/MA-NAVIDROME-The New Deal',
2331 'version': '',
2332 }),
2333 ]),
2334 'date_added': None,
2335 'disc_number': 0,
2336 'duration': 0,
2337 'external_ids': list([
2338 list([
2339 'musicbrainz_recordingid',
2340 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2341 ]),
2342 ]),
2343 'favorite': True,
2344 'is_playable': True,
2345 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2346 'last_played': 0,
2347 'media_type': 'track',
2348 'metadata': dict({
2349 'chapters': None,
2350 'copyright': None,
2351 'description': None,
2352 'explicit': True,
2353 'genres': list([
2354 'East coast',
2355 'Hip-Hop',
2356 ]),
2357 'grouping': None,
2358 'images': None,
2359 'label': None,
2360 'languages': None,
2361 'last_refresh': None,
2362 'links': None,
2363 'lrc_lyrics': None,
2364 'lyrics': None,
2365 'mood': 'slow',
2366 'performers': list([
2367 'Artist 3',
2368 'Artist 4',
2369 'Artist 5',
2370 ]),
2371 'popularity': None,
2372 'preview': None,
2373 'release_date': None,
2374 'review': None,
2375 'style': None,
2376 }),
2377 'name': '"polar expedition"',
2378 'position': None,
2379 'provider': 'xx-instance-id-xx',
2380 'provider_mappings': list([
2381 dict({
2382 'audio_format': dict({
2383 'bit_depth': 16,
2384 'bit_rate': 0,
2385 'channels': 2,
2386 'codec_type': '?',
2387 'content_type': '?',
2388 'output_format_str': '?',
2389 'sample_rate': 44100,
2390 }),
2391 'available': True,
2392 'details': None,
2393 'in_library': None,
2394 'is_unique': None,
2395 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2396 'provider_domain': 'opensubsonic',
2397 'provider_instance': 'xx-instance-id-xx',
2398 'url': None,
2399 }),
2400 ]),
2401 'sort_name': 'Polar expedition',
2402 'track_number': 0,
2403 'translation_key': None,
2404 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
2405 'version': '',
2406 })
2407# ---
2408# name: test_parse_track[navi-various.track].1
2409 dict({
2410 'album': dict({
2411 'artist': 'pornophonique',
2412 'artistId': '97e0398acf63f9fb930d7d4ce209a52b',
2413 'artists': list([
2414 dict({
2415 'id': 'ar-1',
2416 'name': 'Artist 1',
2417 }),
2418 dict({
2419 'id': 'ar-2',
2420 'name': 'Artist 2',
2421 }),
2422 ]),
2423 'coverArt': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
2424 'created': '2023-03-10T02:19:35.784818075Z',
2425 'discTitles': list([
2426 dict({
2427 'disc': 0,
2428 'title': 'Disc 0 title',
2429 }),
2430 dict({
2431 'disc': 2,
2432 'title': 'Disc 1 title',
2433 }),
2434 ]),
2435 'displayArtist': 'Artist 1 feat. Artist 2',
2436 'duration': 1954,
2437 'explicitStatus': 'explicit',
2438 'genre': 'Hip-Hop',
2439 'genres': list([
2440 dict({
2441 'name': 'Hip-Hop',
2442 }),
2443 dict({
2444 'name': 'East coast',
2445 }),
2446 ]),
2447 'id': 'e8a0685e3f3ec6f251649af2b58b8617',
2448 'isCompilation': False,
2449 'moods': list([
2450 'slow',
2451 'cool',
2452 ]),
2453 'musicBrainzId': '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2454 'name': 'Live at The Casbah - 2005-04-29',
2455 'originalReleaseDate': dict({
2456 'day': 10,
2457 'month': 3,
2458 'year': 2001,
2459 }),
2460 'playCount': 97,
2461 'played': '2023-03-28T00:45:13Z',
2462 'releaseDate': dict({
2463 'day': 10,
2464 'month': 3,
2465 'year': 2001,
2466 }),
2467 'releaseTypes': list([
2468 'Album',
2469 'Remixes',
2470 ]),
2471 'songCount': 8,
2472 'sortName': 'lagerfeuer (8-bit)',
2473 'starred': '2023-03-22T01:51:06Z',
2474 'userRating': 4,
2475 'version': 'Deluxe Edition',
2476 'year': 2007,
2477 }),
2478 'artists': list([
2479 dict({
2480 'date_added': None,
2481 'external_ids': list([
2482 ]),
2483 'favorite': False,
2484 'is_playable': True,
2485 'item_id': 'MA-NAVIDROME-The New Deal',
2486 'media_type': 'artist',
2487 'metadata': dict({
2488 'chapters': None,
2489 'copyright': None,
2490 'description': None,
2491 'explicit': None,
2492 'genres': None,
2493 'grouping': None,
2494 'images': None,
2495 'label': None,
2496 'languages': None,
2497 'last_refresh': None,
2498 'links': None,
2499 'lrc_lyrics': None,
2500 'lyrics': None,
2501 'mood': None,
2502 'performers': None,
2503 'popularity': None,
2504 'preview': None,
2505 'release_date': None,
2506 'review': None,
2507 'style': None,
2508 }),
2509 'name': 'The New Deal',
2510 'position': None,
2511 'provider': 'opensubsonic',
2512 'provider_mappings': list([
2513 dict({
2514 'audio_format': dict({
2515 'bit_depth': 16,
2516 'bit_rate': 0,
2517 'channels': 2,
2518 'codec_type': '?',
2519 'content_type': '?',
2520 'output_format_str': '?',
2521 'sample_rate': 44100,
2522 }),
2523 'available': True,
2524 'details': None,
2525 'in_library': None,
2526 'is_unique': None,
2527 'item_id': 'MA-NAVIDROME-The New Deal',
2528 'provider_domain': 'opensubsonic',
2529 'provider_instance': 'xx-instance-id-xx',
2530 'url': None,
2531 }),
2532 ]),
2533 'sort_name': 'new deal, the',
2534 'translation_key': None,
2535 'uri': 'opensubsonic://artist/MA-NAVIDROME-The New Deal',
2536 'version': '',
2537 }),
2538 ]),
2539 'date_added': None,
2540 'disc_number': 0,
2541 'duration': 0,
2542 'external_ids': list([
2543 list([
2544 'musicbrainz_recordingid',
2545 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2546 ]),
2547 ]),
2548 'favorite': True,
2549 'is_playable': True,
2550 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2551 'last_played': 0,
2552 'media_type': 'track',
2553 'metadata': dict({
2554 'chapters': None,
2555 'copyright': None,
2556 'description': None,
2557 'explicit': True,
2558 'genres': list([
2559 'East coast',
2560 'Hip-Hop',
2561 ]),
2562 'grouping': None,
2563 'images': None,
2564 'label': None,
2565 'languages': None,
2566 'last_refresh': None,
2567 'links': None,
2568 'lrc_lyrics': None,
2569 'lyrics': None,
2570 'mood': 'slow',
2571 'performers': list([
2572 'Artist 3',
2573 'Artist 4',
2574 'Artist 5',
2575 ]),
2576 'popularity': None,
2577 'preview': None,
2578 'release_date': None,
2579 'review': None,
2580 'style': None,
2581 }),
2582 'name': '"polar expedition"',
2583 'position': None,
2584 'provider': 'xx-instance-id-xx',
2585 'provider_mappings': list([
2586 dict({
2587 'audio_format': dict({
2588 'bit_depth': 16,
2589 'bit_rate': 0,
2590 'channels': 2,
2591 'codec_type': '?',
2592 'content_type': '?',
2593 'output_format_str': '?',
2594 'sample_rate': 44100,
2595 }),
2596 'available': True,
2597 'details': None,
2598 'in_library': None,
2599 'is_unique': None,
2600 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2601 'provider_domain': 'opensubsonic',
2602 'provider_instance': 'xx-instance-id-xx',
2603 'url': None,
2604 }),
2605 ]),
2606 'sort_name': 'Polar expedition',
2607 'track_number': 0,
2608 'translation_key': None,
2609 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
2610 'version': '',
2611 })
2612# ---
2613# name: test_parse_track[no-version.track]
2614 dict({
2615 'album': dict({
2616 'available': True,
2617 'external_ids': list([
2618 ]),
2619 'image': None,
2620 'is_playable': True,
2621 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
2622 'media_type': 'album',
2623 'name': 'Live at The Casbah - 2005-04-29',
2624 'provider': 'xx-instance-id-xx',
2625 'sort_name': 'live at the casbah - 2005-04-29',
2626 'translation_key': None,
2627 'uri': 'xx-instance-id-xx://album/e8a0685e3f3ec6f251649af2b58b8617',
2628 'version': '',
2629 'year': None,
2630 }),
2631 'artists': list([
2632 dict({
2633 'available': True,
2634 'external_ids': list([
2635 ]),
2636 'image': None,
2637 'is_playable': True,
2638 'item_id': '97e0398acf63f9fb930d7d4ce209a52b',
2639 'media_type': 'artist',
2640 'name': 'The New Deal',
2641 'provider': 'xx-instance-id-xx',
2642 'sort_name': 'new deal, the',
2643 'translation_key': None,
2644 'uri': 'xx-instance-id-xx://artist/97e0398acf63f9fb930d7d4ce209a52b',
2645 'version': '',
2646 'year': None,
2647 }),
2648 dict({
2649 'available': True,
2650 'external_ids': list([
2651 ]),
2652 'image': None,
2653 'is_playable': True,
2654 'item_id': 'ar-1',
2655 'media_type': 'artist',
2656 'name': 'Artist 1',
2657 'provider': 'xx-instance-id-xx',
2658 'sort_name': 'artist 1',
2659 'translation_key': None,
2660 'uri': 'xx-instance-id-xx://artist/ar-1',
2661 'version': '',
2662 'year': None,
2663 }),
2664 dict({
2665 'available': True,
2666 'external_ids': list([
2667 ]),
2668 'image': None,
2669 'is_playable': True,
2670 'item_id': 'ar-2',
2671 'media_type': 'artist',
2672 'name': 'Artist 2',
2673 'provider': 'xx-instance-id-xx',
2674 'sort_name': 'artist 2',
2675 'translation_key': None,
2676 'uri': 'xx-instance-id-xx://artist/ar-2',
2677 'version': '',
2678 'year': None,
2679 }),
2680 ]),
2681 'date_added': None,
2682 'disc_number': 1,
2683 'duration': 178,
2684 'external_ids': list([
2685 list([
2686 'musicbrainz_recordingid',
2687 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2688 ]),
2689 ]),
2690 'favorite': True,
2691 'is_playable': True,
2692 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2693 'last_played': 0,
2694 'media_type': 'track',
2695 'metadata': dict({
2696 'chapters': None,
2697 'copyright': None,
2698 'description': None,
2699 'explicit': True,
2700 'genres': list([
2701 'East coast',
2702 'Hip-Hop',
2703 ]),
2704 'grouping': None,
2705 'images': None,
2706 'label': None,
2707 'languages': None,
2708 'last_refresh': None,
2709 'links': None,
2710 'lrc_lyrics': None,
2711 'lyrics': None,
2712 'mood': 'slow',
2713 'performers': list([
2714 'Artist 3',
2715 'Artist 4',
2716 'Artist 5',
2717 ]),
2718 'popularity': None,
2719 'preview': None,
2720 'release_date': None,
2721 'review': None,
2722 'style': None,
2723 }),
2724 'name': '"polar expedition"',
2725 'position': None,
2726 'provider': 'xx-instance-id-xx',
2727 'provider_mappings': list([
2728 dict({
2729 'audio_format': dict({
2730 'bit_depth': 16,
2731 'bit_rate': 880,
2732 'channels': 2,
2733 'codec_type': '?',
2734 'content_type': 'flac',
2735 'output_format_str': 'flac',
2736 'sample_rate': 44100,
2737 }),
2738 'available': True,
2739 'details': None,
2740 'in_library': None,
2741 'is_unique': None,
2742 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2743 'provider_domain': 'opensubsonic',
2744 'provider_instance': 'xx-instance-id-xx',
2745 'url': None,
2746 }),
2747 ]),
2748 'sort_name': 'Polar expedition',
2749 'track_number': 4,
2750 'translation_key': None,
2751 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
2752 'version': '',
2753 })
2754# ---
2755# name: test_parse_track[no-version.track].1
2756 dict({
2757 'album': dict({
2758 'artist': 'pornophonique',
2759 'artistId': '97e0398acf63f9fb930d7d4ce209a52b',
2760 'artists': list([
2761 dict({
2762 'id': 'ar-1',
2763 'name': 'Artist 1',
2764 }),
2765 dict({
2766 'id': 'ar-2',
2767 'name': 'Artist 2',
2768 }),
2769 ]),
2770 'coverArt': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
2771 'created': '2023-03-10T02:19:35.784818075Z',
2772 'discTitles': list([
2773 dict({
2774 'disc': 0,
2775 'title': 'Disc 0 title',
2776 }),
2777 dict({
2778 'disc': 2,
2779 'title': 'Disc 1 title',
2780 }),
2781 ]),
2782 'displayArtist': 'Artist 1 feat. Artist 2',
2783 'duration': 1954,
2784 'explicitStatus': 'explicit',
2785 'genre': 'Hip-Hop',
2786 'genres': list([
2787 dict({
2788 'name': 'Hip-Hop',
2789 }),
2790 dict({
2791 'name': 'East coast',
2792 }),
2793 ]),
2794 'id': 'e8a0685e3f3ec6f251649af2b58b8617',
2795 'isCompilation': False,
2796 'moods': list([
2797 'slow',
2798 'cool',
2799 ]),
2800 'musicBrainzId': '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2801 'name': 'Live at The Casbah - 2005-04-29',
2802 'originalReleaseDate': dict({
2803 'day': 10,
2804 'month': 3,
2805 'year': 2001,
2806 }),
2807 'playCount': 97,
2808 'played': '2023-03-28T00:45:13Z',
2809 'releaseDate': dict({
2810 'day': 10,
2811 'month': 3,
2812 'year': 2001,
2813 }),
2814 'releaseTypes': list([
2815 'Album',
2816 'Remixes',
2817 ]),
2818 'songCount': 8,
2819 'sortName': 'lagerfeuer (8-bit)',
2820 'starred': '2023-03-22T01:51:06Z',
2821 'userRating': 4,
2822 'year': 2007,
2823 }),
2824 'artists': list([
2825 dict({
2826 'available': True,
2827 'external_ids': list([
2828 ]),
2829 'image': None,
2830 'is_playable': True,
2831 'item_id': '97e0398acf63f9fb930d7d4ce209a52b',
2832 'media_type': 'artist',
2833 'name': 'The New Deal',
2834 'provider': 'xx-instance-id-xx',
2835 'sort_name': 'new deal, the',
2836 'translation_key': None,
2837 'uri': 'xx-instance-id-xx://artist/97e0398acf63f9fb930d7d4ce209a52b',
2838 'version': '',
2839 'year': None,
2840 }),
2841 dict({
2842 'available': True,
2843 'external_ids': list([
2844 ]),
2845 'image': None,
2846 'is_playable': True,
2847 'item_id': 'ar-1',
2848 'media_type': 'artist',
2849 'name': 'Artist 1',
2850 'provider': 'xx-instance-id-xx',
2851 'sort_name': 'artist 1',
2852 'translation_key': None,
2853 'uri': 'xx-instance-id-xx://artist/ar-1',
2854 'version': '',
2855 'year': None,
2856 }),
2857 dict({
2858 'available': True,
2859 'external_ids': list([
2860 ]),
2861 'image': None,
2862 'is_playable': True,
2863 'item_id': 'ar-2',
2864 'media_type': 'artist',
2865 'name': 'Artist 2',
2866 'provider': 'xx-instance-id-xx',
2867 'sort_name': 'artist 2',
2868 'translation_key': None,
2869 'uri': 'xx-instance-id-xx://artist/ar-2',
2870 'version': '',
2871 'year': None,
2872 }),
2873 ]),
2874 'date_added': None,
2875 'disc_number': 1,
2876 'duration': 178,
2877 'external_ids': list([
2878 list([
2879 'musicbrainz_recordingid',
2880 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2881 ]),
2882 ]),
2883 'favorite': True,
2884 'is_playable': True,
2885 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2886 'last_played': 0,
2887 'media_type': 'track',
2888 'metadata': dict({
2889 'chapters': None,
2890 'copyright': None,
2891 'description': None,
2892 'explicit': True,
2893 'genres': list([
2894 'East coast',
2895 'Hip-Hop',
2896 ]),
2897 'grouping': None,
2898 'images': None,
2899 'label': None,
2900 'languages': None,
2901 'last_refresh': None,
2902 'links': None,
2903 'lrc_lyrics': None,
2904 'lyrics': None,
2905 'mood': 'slow',
2906 'performers': list([
2907 'Artist 3',
2908 'Artist 4',
2909 'Artist 5',
2910 ]),
2911 'popularity': None,
2912 'preview': None,
2913 'release_date': None,
2914 'review': None,
2915 'style': None,
2916 }),
2917 'name': '"polar expedition"',
2918 'position': None,
2919 'provider': 'xx-instance-id-xx',
2920 'provider_mappings': list([
2921 dict({
2922 'audio_format': dict({
2923 'bit_depth': 16,
2924 'bit_rate': 880,
2925 'channels': 2,
2926 'codec_type': '?',
2927 'content_type': 'flac',
2928 'output_format_str': 'flac',
2929 'sample_rate': 44100,
2930 }),
2931 'available': True,
2932 'details': None,
2933 'in_library': None,
2934 'is_unique': None,
2935 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2936 'provider_domain': 'opensubsonic',
2937 'provider_instance': 'xx-instance-id-xx',
2938 'url': None,
2939 }),
2940 ]),
2941 'sort_name': 'Polar expedition',
2942 'track_number': 4,
2943 'translation_key': None,
2944 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
2945 'version': '',
2946 })
2947# ---
2948# name: test_parse_track[spec-child.track]
2949 dict({
2950 'album': dict({
2951 'available': True,
2952 'external_ids': list([
2953 ]),
2954 'image': None,
2955 'is_playable': True,
2956 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
2957 'media_type': 'album',
2958 'name': 'Live at The Casbah - 2005-04-29',
2959 'provider': 'xx-instance-id-xx',
2960 'sort_name': 'live at the casbah - 2005-04-29',
2961 'translation_key': None,
2962 'uri': 'xx-instance-id-xx://album/e8a0685e3f3ec6f251649af2b58b8617',
2963 'version': '',
2964 'year': None,
2965 }),
2966 'artists': list([
2967 dict({
2968 'available': True,
2969 'external_ids': list([
2970 ]),
2971 'image': None,
2972 'is_playable': True,
2973 'item_id': '97e0398acf63f9fb930d7d4ce209a52b',
2974 'media_type': 'artist',
2975 'name': 'The New Deal',
2976 'provider': 'xx-instance-id-xx',
2977 'sort_name': 'new deal, the',
2978 'translation_key': None,
2979 'uri': 'xx-instance-id-xx://artist/97e0398acf63f9fb930d7d4ce209a52b',
2980 'version': '',
2981 'year': None,
2982 }),
2983 dict({
2984 'available': True,
2985 'external_ids': list([
2986 ]),
2987 'image': None,
2988 'is_playable': True,
2989 'item_id': 'ar-1',
2990 'media_type': 'artist',
2991 'name': 'Artist 1',
2992 'provider': 'xx-instance-id-xx',
2993 'sort_name': 'artist 1',
2994 'translation_key': None,
2995 'uri': 'xx-instance-id-xx://artist/ar-1',
2996 'version': '',
2997 'year': None,
2998 }),
2999 dict({
3000 'available': True,
3001 'external_ids': list([
3002 ]),
3003 'image': None,
3004 'is_playable': True,
3005 'item_id': 'ar-2',
3006 'media_type': 'artist',
3007 'name': 'Artist 2',
3008 'provider': 'xx-instance-id-xx',
3009 'sort_name': 'artist 2',
3010 'translation_key': None,
3011 'uri': 'xx-instance-id-xx://artist/ar-2',
3012 'version': '',
3013 'year': None,
3014 }),
3015 ]),
3016 'date_added': None,
3017 'disc_number': 1,
3018 'duration': 178,
3019 'external_ids': list([
3020 list([
3021 'musicbrainz_recordingid',
3022 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
3023 ]),
3024 ]),
3025 'favorite': True,
3026 'is_playable': True,
3027 'item_id': '082f435a363c32c57d5edb6a678a28d4',
3028 'last_played': 0,
3029 'media_type': 'track',
3030 'metadata': dict({
3031 'chapters': None,
3032 'copyright': None,
3033 'description': None,
3034 'explicit': True,
3035 'genres': list([
3036 'East coast',
3037 'Hip-Hop',
3038 ]),
3039 'grouping': None,
3040 'images': None,
3041 'label': None,
3042 'languages': None,
3043 'last_refresh': None,
3044 'links': None,
3045 'lrc_lyrics': None,
3046 'lyrics': None,
3047 'mood': 'slow',
3048 'performers': list([
3049 'Artist 3',
3050 'Artist 4',
3051 'Artist 5',
3052 ]),
3053 'popularity': None,
3054 'preview': None,
3055 'release_date': None,
3056 'review': None,
3057 'style': None,
3058 }),
3059 'name': '"polar expedition"',
3060 'position': None,
3061 'provider': 'xx-instance-id-xx',
3062 'provider_mappings': list([
3063 dict({
3064 'audio_format': dict({
3065 'bit_depth': 16,
3066 'bit_rate': 880,
3067 'channels': 2,
3068 'codec_type': '?',
3069 'content_type': 'flac',
3070 'output_format_str': 'flac',
3071 'sample_rate': 44100,
3072 }),
3073 'available': True,
3074 'details': None,
3075 'in_library': None,
3076 'is_unique': None,
3077 'item_id': '082f435a363c32c57d5edb6a678a28d4',
3078 'provider_domain': 'opensubsonic',
3079 'provider_instance': 'xx-instance-id-xx',
3080 'url': None,
3081 }),
3082 ]),
3083 'sort_name': 'Polar expedition',
3084 'track_number': 4,
3085 'translation_key': None,
3086 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
3087 'version': '',
3088 })
3089# ---
3090# name: test_parse_track[spec-child.track].1
3091 dict({
3092 'album': dict({
3093 'artist': 'pornophonique',
3094 'artistId': '97e0398acf63f9fb930d7d4ce209a52b',
3095 'artists': list([
3096 dict({
3097 'id': 'ar-1',
3098 'name': 'Artist 1',
3099 }),
3100 dict({
3101 'id': 'ar-2',
3102 'name': 'Artist 2',
3103 }),
3104 ]),
3105 'coverArt': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
3106 'created': '2023-03-10T02:19:35.784818075Z',
3107 'discTitles': list([
3108 dict({
3109 'disc': 0,
3110 'title': 'Disc 0 title',
3111 }),
3112 dict({
3113 'disc': 2,
3114 'title': 'Disc 1 title',
3115 }),
3116 ]),
3117 'displayArtist': 'Artist 1 feat. Artist 2',
3118 'duration': 1954,
3119 'explicitStatus': 'explicit',
3120 'genre': 'Hip-Hop',
3121 'genres': list([
3122 dict({
3123 'name': 'Hip-Hop',
3124 }),
3125 dict({
3126 'name': 'East coast',
3127 }),
3128 ]),
3129 'id': 'e8a0685e3f3ec6f251649af2b58b8617',
3130 'isCompilation': False,
3131 'moods': list([
3132 'slow',
3133 'cool',
3134 ]),
3135 'musicBrainzId': '189002e7-3285-4e2e-92a3-7f6c30d407a2',
3136 'name': 'Live at The Casbah - 2005-04-29',
3137 'originalReleaseDate': dict({
3138 'day': 10,
3139 'month': 3,
3140 'year': 2001,
3141 }),
3142 'playCount': 97,
3143 'played': '2023-03-28T00:45:13Z',
3144 'releaseDate': dict({
3145 'day': 10,
3146 'month': 3,
3147 'year': 2001,
3148 }),
3149 'releaseTypes': list([
3150 'Album',
3151 'Remixes',
3152 ]),
3153 'songCount': 8,
3154 'sortName': 'lagerfeuer (8-bit)',
3155 'starred': '2023-03-22T01:51:06Z',
3156 'userRating': 4,
3157 'version': 'Deluxe Edition',
3158 'year': 2007,
3159 }),
3160 'artists': list([
3161 dict({
3162 'available': True,
3163 'external_ids': list([
3164 ]),
3165 'image': None,
3166 'is_playable': True,
3167 'item_id': '97e0398acf63f9fb930d7d4ce209a52b',
3168 'media_type': 'artist',
3169 'name': 'The New Deal',
3170 'provider': 'xx-instance-id-xx',
3171 'sort_name': 'new deal, the',
3172 'translation_key': None,
3173 'uri': 'xx-instance-id-xx://artist/97e0398acf63f9fb930d7d4ce209a52b',
3174 'version': '',
3175 'year': None,
3176 }),
3177 dict({
3178 'available': True,
3179 'external_ids': list([
3180 ]),
3181 'image': None,
3182 'is_playable': True,
3183 'item_id': 'ar-1',
3184 'media_type': 'artist',
3185 'name': 'Artist 1',
3186 'provider': 'xx-instance-id-xx',
3187 'sort_name': 'artist 1',
3188 'translation_key': None,
3189 'uri': 'xx-instance-id-xx://artist/ar-1',
3190 'version': '',
3191 'year': None,
3192 }),
3193 dict({
3194 'available': True,
3195 'external_ids': list([
3196 ]),
3197 'image': None,
3198 'is_playable': True,
3199 'item_id': 'ar-2',
3200 'media_type': 'artist',
3201 'name': 'Artist 2',
3202 'provider': 'xx-instance-id-xx',
3203 'sort_name': 'artist 2',
3204 'translation_key': None,
3205 'uri': 'xx-instance-id-xx://artist/ar-2',
3206 'version': '',
3207 'year': None,
3208 }),
3209 ]),
3210 'date_added': None,
3211 'disc_number': 1,
3212 'duration': 178,
3213 'external_ids': list([
3214 list([
3215 'musicbrainz_recordingid',
3216 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
3217 ]),
3218 ]),
3219 'favorite': True,
3220 'is_playable': True,
3221 'item_id': '082f435a363c32c57d5edb6a678a28d4',
3222 'last_played': 0,
3223 'media_type': 'track',
3224 'metadata': dict({
3225 'chapters': None,
3226 'copyright': None,
3227 'description': None,
3228 'explicit': True,
3229 'genres': list([
3230 'East coast',
3231 'Hip-Hop',
3232 ]),
3233 'grouping': None,
3234 'images': None,
3235 'label': None,
3236 'languages': None,
3237 'last_refresh': None,
3238 'links': None,
3239 'lrc_lyrics': None,
3240 'lyrics': None,
3241 'mood': 'slow',
3242 'performers': list([
3243 'Artist 3',
3244 'Artist 4',
3245 'Artist 5',
3246 ]),
3247 'popularity': None,
3248 'preview': None,
3249 'release_date': None,
3250 'review': None,
3251 'style': None,
3252 }),
3253 'name': '"polar expedition"',
3254 'position': None,
3255 'provider': 'xx-instance-id-xx',
3256 'provider_mappings': list([
3257 dict({
3258 'audio_format': dict({
3259 'bit_depth': 16,
3260 'bit_rate': 880,
3261 'channels': 2,
3262 'codec_type': '?',
3263 'content_type': 'flac',
3264 'output_format_str': 'flac',
3265 'sample_rate': 44100,
3266 }),
3267 'available': True,
3268 'details': None,
3269 'in_library': None,
3270 'is_unique': None,
3271 'item_id': '082f435a363c32c57d5edb6a678a28d4',
3272 'provider_domain': 'opensubsonic',
3273 'provider_instance': 'xx-instance-id-xx',
3274 'url': None,
3275 }),
3276 ]),
3277 'sort_name': 'Polar expedition',
3278 'track_number': 4,
3279 'translation_key': None,
3280 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
3281 'version': '',
3282 })
3283# ---
3284