/
/
/
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[spec.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 }),
303 dict({
304 'available': True,
305 'external_ids': list([
306 ]),
307 'image': None,
308 'is_playable': True,
309 'item_id': 'ar-1',
310 'media_type': 'artist',
311 'name': 'Artist 1',
312 'provider': 'xx-instance-id-xx',
313 'sort_name': 'artist 1',
314 'translation_key': None,
315 'uri': 'xx-instance-id-xx://artist/ar-1',
316 'version': '',
317 }),
318 dict({
319 'available': True,
320 'external_ids': list([
321 ]),
322 'image': None,
323 'is_playable': True,
324 'item_id': 'ar-2',
325 'media_type': 'artist',
326 'name': 'Artist 2',
327 'provider': 'xx-instance-id-xx',
328 'sort_name': 'artist 2',
329 'translation_key': None,
330 'uri': 'xx-instance-id-xx://artist/ar-2',
331 'version': '',
332 }),
333 ]),
334 'date_added': None,
335 'external_ids': list([
336 list([
337 'musicbrainz_albumid',
338 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
339 ]),
340 ]),
341 'favorite': True,
342 'is_playable': True,
343 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
344 'media_type': 'album',
345 'metadata': dict({
346 'chapters': None,
347 'copyright': None,
348 'description': None,
349 'explicit': None,
350 'genres': list([
351 'East coast',
352 'Hip-Hop',
353 ]),
354 'grouping': None,
355 'images': list([
356 dict({
357 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
358 'provider': 'xx-instance-id-xx',
359 'remotely_accessible': False,
360 'type': 'thumb',
361 }),
362 ]),
363 'label': None,
364 'languages': None,
365 'last_refresh': None,
366 'links': None,
367 'lrc_lyrics': None,
368 'lyrics': None,
369 'mood': 'slow',
370 'performers': None,
371 'popularity': None,
372 'preview': None,
373 'release_date': None,
374 'review': None,
375 'style': None,
376 }),
377 'name': '8-bit lagerfeuer',
378 'position': None,
379 'provider': 'opensubsonic',
380 'provider_mappings': list([
381 dict({
382 'audio_format': dict({
383 'bit_depth': 16,
384 'bit_rate': 0,
385 'channels': 2,
386 'codec_type': '?',
387 'content_type': '?',
388 'output_format_str': '?',
389 'sample_rate': 44100,
390 }),
391 'available': True,
392 'details': None,
393 'in_library': None,
394 'is_unique': None,
395 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
396 'provider_domain': 'opensubsonic',
397 'provider_instance': 'xx-instance-id-xx',
398 'url': None,
399 }),
400 ]),
401 'sort_name': 'lagerfeuer (8-bit)',
402 'translation_key': None,
403 'uri': 'opensubsonic://album/ad0f112b6dcf83de5e9cae85d07f0d35',
404 'version': '',
405 'year': 2007,
406 })
407# ---
408# name: test_parse_albums[spec.album].1
409 dict({
410 'album_type': 'unknown',
411 'artists': list([
412 dict({
413 'available': True,
414 'external_ids': list([
415 ]),
416 'image': None,
417 'is_playable': True,
418 'item_id': '91c3901ac465b9efc439e4be4270c2b6',
419 'media_type': 'artist',
420 'name': 'pornophonique',
421 'provider': 'xx-instance-id-xx',
422 'sort_name': 'pornophonique',
423 'translation_key': None,
424 'uri': 'xx-instance-id-xx://artist/91c3901ac465b9efc439e4be4270c2b6',
425 'version': '',
426 }),
427 dict({
428 'available': True,
429 'external_ids': list([
430 ]),
431 'image': None,
432 'is_playable': True,
433 'item_id': 'ar-1',
434 'media_type': 'artist',
435 'name': 'Artist 1',
436 'provider': 'xx-instance-id-xx',
437 'sort_name': 'artist 1',
438 'translation_key': None,
439 'uri': 'xx-instance-id-xx://artist/ar-1',
440 'version': '',
441 }),
442 dict({
443 'available': True,
444 'external_ids': list([
445 ]),
446 'image': None,
447 'is_playable': True,
448 'item_id': 'ar-2',
449 'media_type': 'artist',
450 'name': 'Artist 2',
451 'provider': 'xx-instance-id-xx',
452 'sort_name': 'artist 2',
453 'translation_key': None,
454 'uri': 'xx-instance-id-xx://artist/ar-2',
455 'version': '',
456 }),
457 ]),
458 'date_added': None,
459 'external_ids': list([
460 list([
461 'musicbrainz_albumid',
462 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
463 ]),
464 ]),
465 'favorite': True,
466 'is_playable': True,
467 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
468 'media_type': 'album',
469 'metadata': dict({
470 'chapters': None,
471 'copyright': None,
472 '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',
473 'explicit': None,
474 'genres': list([
475 'East coast',
476 'Hip-Hop',
477 ]),
478 'grouping': None,
479 'images': list([
480 dict({
481 'path': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
482 'provider': 'xx-instance-id-xx',
483 'remotely_accessible': False,
484 'type': 'thumb',
485 }),
486 dict({
487 'path': 'http://localhost:8989/play/art/0f8c3cbd6b0b22c3b5402141351ac812/album/21/thumb34.jpg',
488 'provider': 'xx-instance-id-xx',
489 'remotely_accessible': True,
490 'type': 'thumb',
491 }),
492 ]),
493 'label': None,
494 'languages': None,
495 'last_refresh': None,
496 'links': None,
497 'lrc_lyrics': None,
498 'lyrics': None,
499 'mood': 'slow',
500 'performers': None,
501 'popularity': None,
502 'preview': None,
503 'release_date': None,
504 'review': None,
505 'style': None,
506 }),
507 'name': '8-bit lagerfeuer',
508 'position': None,
509 'provider': 'opensubsonic',
510 'provider_mappings': list([
511 dict({
512 'audio_format': dict({
513 'bit_depth': 16,
514 'bit_rate': 0,
515 'channels': 2,
516 'codec_type': '?',
517 'content_type': '?',
518 'output_format_str': '?',
519 'sample_rate': 44100,
520 }),
521 'available': True,
522 'details': None,
523 'in_library': None,
524 'is_unique': None,
525 'item_id': 'ad0f112b6dcf83de5e9cae85d07f0d35',
526 'provider_domain': 'opensubsonic',
527 'provider_instance': 'xx-instance-id-xx',
528 'url': None,
529 }),
530 ]),
531 'sort_name': 'lagerfeuer (8-bit)',
532 'translation_key': None,
533 'uri': 'opensubsonic://album/ad0f112b6dcf83de5e9cae85d07f0d35',
534 'version': '',
535 'year': 2007,
536 })
537# ---
538# name: test_parse_artists[no-sort-name.artist]
539 dict({
540 'date_added': None,
541 'external_ids': list([
542 list([
543 'musicbrainz_artistid',
544 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
545 ]),
546 ]),
547 'favorite': True,
548 'is_playable': True,
549 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
550 'media_type': 'artist',
551 'metadata': dict({
552 'chapters': None,
553 'copyright': None,
554 'description': None,
555 'explicit': None,
556 'genres': None,
557 'grouping': None,
558 'images': list([
559 dict({
560 'path': 'https://demo.org/image.jpg',
561 'provider': 'xx-instance-id-xx',
562 'remotely_accessible': True,
563 'type': 'thumb',
564 }),
565 dict({
566 'path': 'ar-37ec820ca7193e17040c98f7da7c4b51_0',
567 'provider': 'xx-instance-id-xx',
568 'remotely_accessible': False,
569 'type': 'thumb',
570 }),
571 ]),
572 'label': None,
573 'languages': None,
574 'last_refresh': None,
575 'links': None,
576 'lrc_lyrics': None,
577 'lyrics': None,
578 'mood': None,
579 'performers': None,
580 'popularity': None,
581 'preview': None,
582 'release_date': None,
583 'review': None,
584 'style': None,
585 }),
586 'name': '2 Mello',
587 'position': None,
588 'provider': 'opensubsonic',
589 'provider_mappings': list([
590 dict({
591 'audio_format': dict({
592 'bit_depth': 16,
593 'bit_rate': 0,
594 'channels': 2,
595 'codec_type': '?',
596 'content_type': '?',
597 'output_format_str': '?',
598 'sample_rate': 44100,
599 }),
600 'available': True,
601 'details': None,
602 'in_library': None,
603 'is_unique': None,
604 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
605 'provider_domain': 'opensubsonic',
606 'provider_instance': 'xx-instance-id-xx',
607 'url': None,
608 }),
609 ]),
610 'sort_name': '2 mello',
611 'translation_key': None,
612 'uri': 'opensubsonic://artist/37ec820ca7193e17040c98f7da7c4b51',
613 'version': '',
614 })
615# ---
616# name: test_parse_artists[no-sort-name.artist].1
617 dict({
618 'date_added': None,
619 'external_ids': list([
620 list([
621 'musicbrainz_artistid',
622 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
623 ]),
624 ]),
625 'favorite': True,
626 'is_playable': True,
627 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
628 'media_type': 'artist',
629 'metadata': dict({
630 'chapters': None,
631 'copyright': None,
632 'description': 'Empty biography',
633 'explicit': None,
634 'genres': None,
635 'grouping': None,
636 'images': list([
637 dict({
638 'path': 'https://demo.org/image.jpg',
639 'provider': 'xx-instance-id-xx',
640 'remotely_accessible': True,
641 'type': 'thumb',
642 }),
643 dict({
644 'path': 'ar-37ec820ca7193e17040c98f7da7c4b51_0',
645 'provider': 'xx-instance-id-xx',
646 'remotely_accessible': False,
647 'type': 'thumb',
648 }),
649 dict({
650 'path': 'http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg',
651 'provider': 'xx-instance-id-xx',
652 'remotely_accessible': True,
653 'type': 'thumb',
654 }),
655 ]),
656 'label': None,
657 'languages': None,
658 'last_refresh': None,
659 'links': None,
660 'lrc_lyrics': None,
661 'lyrics': None,
662 'mood': None,
663 'performers': None,
664 'popularity': None,
665 'preview': None,
666 'release_date': None,
667 'review': None,
668 'style': None,
669 }),
670 'name': '2 Mello',
671 'position': None,
672 'provider': 'opensubsonic',
673 'provider_mappings': list([
674 dict({
675 'audio_format': dict({
676 'bit_depth': 16,
677 'bit_rate': 0,
678 'channels': 2,
679 'codec_type': '?',
680 'content_type': '?',
681 'output_format_str': '?',
682 'sample_rate': 44100,
683 }),
684 'available': True,
685 'details': None,
686 'in_library': None,
687 'is_unique': None,
688 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
689 'provider_domain': 'opensubsonic',
690 'provider_instance': 'xx-instance-id-xx',
691 'url': None,
692 }),
693 ]),
694 'sort_name': '2 mello',
695 'translation_key': None,
696 'uri': 'opensubsonic://artist/37ec820ca7193e17040c98f7da7c4b51',
697 'version': '',
698 })
699# ---
700# name: test_parse_artists[spec-artistid3.artist]
701 dict({
702 'date_added': None,
703 'external_ids': list([
704 list([
705 'musicbrainz_artistid',
706 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
707 ]),
708 ]),
709 'favorite': True,
710 'is_playable': True,
711 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
712 'media_type': 'artist',
713 'metadata': dict({
714 'chapters': None,
715 'copyright': None,
716 'description': None,
717 'explicit': None,
718 'genres': None,
719 'grouping': None,
720 'images': list([
721 dict({
722 'path': 'https://demo.org/image.jpg',
723 'provider': 'xx-instance-id-xx',
724 'remotely_accessible': True,
725 'type': 'thumb',
726 }),
727 dict({
728 'path': 'ar-37ec820ca7193e17040c98f7da7c4b51_0',
729 'provider': 'xx-instance-id-xx',
730 'remotely_accessible': False,
731 'type': 'thumb',
732 }),
733 ]),
734 'label': None,
735 'languages': None,
736 'last_refresh': None,
737 'links': None,
738 'lrc_lyrics': None,
739 'lyrics': None,
740 'mood': None,
741 'performers': None,
742 'popularity': None,
743 'preview': None,
744 'release_date': None,
745 'review': None,
746 'style': None,
747 }),
748 'name': '2 Mello',
749 'position': None,
750 'provider': 'opensubsonic',
751 'provider_mappings': list([
752 dict({
753 'audio_format': dict({
754 'bit_depth': 16,
755 'bit_rate': 0,
756 'channels': 2,
757 'codec_type': '?',
758 'content_type': '?',
759 'output_format_str': '?',
760 'sample_rate': 44100,
761 }),
762 'available': True,
763 'details': None,
764 'in_library': None,
765 'is_unique': None,
766 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
767 'provider_domain': 'opensubsonic',
768 'provider_instance': 'xx-instance-id-xx',
769 'url': None,
770 }),
771 ]),
772 'sort_name': 'Mello (2)',
773 'translation_key': None,
774 'uri': 'opensubsonic://artist/37ec820ca7193e17040c98f7da7c4b51',
775 'version': '',
776 })
777# ---
778# name: test_parse_artists[spec-artistid3.artist].1
779 dict({
780 'date_added': None,
781 'external_ids': list([
782 list([
783 'musicbrainz_artistid',
784 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
785 ]),
786 ]),
787 'favorite': True,
788 'is_playable': True,
789 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
790 'media_type': 'artist',
791 'metadata': dict({
792 'chapters': None,
793 'copyright': None,
794 'description': 'Empty biography',
795 'explicit': None,
796 'genres': None,
797 'grouping': None,
798 'images': list([
799 dict({
800 'path': 'https://demo.org/image.jpg',
801 'provider': 'xx-instance-id-xx',
802 'remotely_accessible': True,
803 'type': 'thumb',
804 }),
805 dict({
806 'path': 'ar-37ec820ca7193e17040c98f7da7c4b51_0',
807 'provider': 'xx-instance-id-xx',
808 'remotely_accessible': False,
809 'type': 'thumb',
810 }),
811 dict({
812 'path': 'http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg',
813 'provider': 'xx-instance-id-xx',
814 'remotely_accessible': True,
815 'type': 'thumb',
816 }),
817 ]),
818 'label': None,
819 'languages': None,
820 'last_refresh': None,
821 'links': None,
822 'lrc_lyrics': None,
823 'lyrics': None,
824 'mood': None,
825 'performers': None,
826 'popularity': None,
827 'preview': None,
828 'release_date': None,
829 'review': None,
830 'style': None,
831 }),
832 'name': '2 Mello',
833 'position': None,
834 'provider': 'opensubsonic',
835 'provider_mappings': list([
836 dict({
837 'audio_format': dict({
838 'bit_depth': 16,
839 'bit_rate': 0,
840 'channels': 2,
841 'codec_type': '?',
842 'content_type': '?',
843 'output_format_str': '?',
844 'sample_rate': 44100,
845 }),
846 'available': True,
847 'details': None,
848 'in_library': None,
849 'is_unique': None,
850 'item_id': '37ec820ca7193e17040c98f7da7c4b51',
851 'provider_domain': 'opensubsonic',
852 'provider_instance': 'xx-instance-id-xx',
853 'url': None,
854 }),
855 ]),
856 'sort_name': 'Mello (2)',
857 'translation_key': None,
858 'uri': 'opensubsonic://artist/37ec820ca7193e17040c98f7da7c4b51',
859 'version': '',
860 })
861# ---
862# name: test_parse_artists[spec-sample.artist]
863 dict({
864 'date_added': None,
865 'external_ids': list([
866 ]),
867 'favorite': True,
868 'is_playable': True,
869 'item_id': '100000002',
870 'media_type': 'artist',
871 'metadata': dict({
872 'chapters': None,
873 'copyright': None,
874 'description': None,
875 'explicit': None,
876 'genres': None,
877 'grouping': None,
878 'images': list([
879 dict({
880 'path': 'ar-100000002',
881 'provider': 'xx-instance-id-xx',
882 'remotely_accessible': False,
883 'type': 'thumb',
884 }),
885 ]),
886 'label': None,
887 'languages': None,
888 'last_refresh': None,
889 'links': None,
890 'lrc_lyrics': None,
891 'lyrics': None,
892 'mood': None,
893 'performers': None,
894 'popularity': None,
895 'preview': None,
896 'release_date': None,
897 'review': None,
898 'style': None,
899 }),
900 'name': 'Synthetic',
901 'position': None,
902 'provider': 'opensubsonic',
903 'provider_mappings': list([
904 dict({
905 'audio_format': dict({
906 'bit_depth': 16,
907 'bit_rate': 0,
908 'channels': 2,
909 'codec_type': '?',
910 'content_type': '?',
911 'output_format_str': '?',
912 'sample_rate': 44100,
913 }),
914 'available': True,
915 'details': None,
916 'in_library': None,
917 'is_unique': None,
918 'item_id': '100000002',
919 'provider_domain': 'opensubsonic',
920 'provider_instance': 'xx-instance-id-xx',
921 'url': None,
922 }),
923 ]),
924 'sort_name': 'synthetic',
925 'translation_key': None,
926 'uri': 'opensubsonic://artist/100000002',
927 'version': '',
928 })
929# ---
930# name: test_parse_artists[spec-sample.artist].1
931 dict({
932 'date_added': None,
933 'external_ids': list([
934 ]),
935 'favorite': True,
936 'is_playable': True,
937 'item_id': '100000002',
938 'media_type': 'artist',
939 'metadata': dict({
940 'chapters': None,
941 'copyright': None,
942 'description': 'Empty biography',
943 'explicit': None,
944 'genres': None,
945 'grouping': None,
946 'images': list([
947 dict({
948 'path': 'ar-100000002',
949 'provider': 'xx-instance-id-xx',
950 'remotely_accessible': False,
951 'type': 'thumb',
952 }),
953 dict({
954 'path': 'http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg',
955 'provider': 'xx-instance-id-xx',
956 'remotely_accessible': True,
957 'type': 'thumb',
958 }),
959 ]),
960 'label': None,
961 'languages': None,
962 'last_refresh': None,
963 'links': None,
964 'lrc_lyrics': None,
965 'lyrics': None,
966 'mood': None,
967 'performers': None,
968 'popularity': None,
969 'preview': None,
970 'release_date': None,
971 'review': None,
972 'style': None,
973 }),
974 'name': 'Synthetic',
975 'position': None,
976 'provider': 'opensubsonic',
977 'provider_mappings': list([
978 dict({
979 'audio_format': dict({
980 'bit_depth': 16,
981 'bit_rate': 0,
982 'channels': 2,
983 'codec_type': '?',
984 'content_type': '?',
985 'output_format_str': '?',
986 'sample_rate': 44100,
987 }),
988 'available': True,
989 'details': None,
990 'in_library': None,
991 'is_unique': None,
992 'item_id': '100000002',
993 'provider_domain': 'opensubsonic',
994 'provider_instance': 'xx-instance-id-xx',
995 'url': None,
996 }),
997 ]),
998 'sort_name': 'synthetic',
999 'translation_key': None,
1000 'uri': 'opensubsonic://artist/100000002',
1001 'version': '',
1002 })
1003# ---
1004# name: test_parse_episode[gonic-sample.episode]
1005 dict({
1006 'date_added': None,
1007 'duration': 1878,
1008 'external_ids': list([
1009 ]),
1010 'favorite': False,
1011 'fully_played': None,
1012 'is_playable': True,
1013 'item_id': 'pd-5$!$pe-1860',
1014 'media_type': 'podcast_episode',
1015 'metadata': dict({
1016 'chapters': None,
1017 'copyright': None,
1018 'description': 'The history of The History of Rome...Why the Western Empire Fell when it did...Some thoughts on the future...Thank you, goodnight.',
1019 'explicit': None,
1020 'genres': None,
1021 'grouping': None,
1022 'images': list([
1023 dict({
1024 'path': 'pd-5',
1025 'provider': 'xx-instance-id-xx',
1026 'remotely_accessible': False,
1027 'type': 'thumb',
1028 }),
1029 ]),
1030 'label': None,
1031 'languages': None,
1032 'last_refresh': None,
1033 'links': None,
1034 'lrc_lyrics': None,
1035 'lyrics': None,
1036 'mood': None,
1037 'performers': None,
1038 'popularity': None,
1039 'preview': None,
1040 'release_date': '2012-05-06T18:18:38+00:00',
1041 'review': None,
1042 'style': None,
1043 }),
1044 'name': '179- The End',
1045 'podcast': dict({
1046 'date_added': None,
1047 'external_ids': list([
1048 ]),
1049 'favorite': False,
1050 'is_playable': True,
1051 'item_id': 'pd-5',
1052 'media_type': 'podcast',
1053 'metadata': dict({
1054 'chapters': None,
1055 'copyright': None,
1056 'description': 'A weekly podcast tracing the rise, decline and fall of the Roman Empire. Now complete!',
1057 'explicit': None,
1058 'genres': None,
1059 'grouping': None,
1060 'images': list([
1061 dict({
1062 'path': 'pd-5',
1063 'provider': 'xx-instance-id-xx',
1064 'remotely_accessible': False,
1065 'type': 'thumb',
1066 }),
1067 ]),
1068 'label': None,
1069 'languages': None,
1070 'last_refresh': None,
1071 'links': None,
1072 'lrc_lyrics': None,
1073 'lyrics': None,
1074 'mood': None,
1075 'performers': None,
1076 'popularity': None,
1077 'preview': None,
1078 'release_date': None,
1079 'review': None,
1080 'style': None,
1081 }),
1082 'name': 'The History of Rome',
1083 'position': None,
1084 'provider': 'opensubsonic',
1085 'provider_mappings': list([
1086 dict({
1087 'audio_format': dict({
1088 'bit_depth': 16,
1089 'bit_rate': 0,
1090 'channels': 2,
1091 'codec_type': '?',
1092 'content_type': '?',
1093 'output_format_str': '?',
1094 'sample_rate': 44100,
1095 }),
1096 'available': True,
1097 'details': None,
1098 'in_library': None,
1099 'is_unique': None,
1100 'item_id': 'pd-5',
1101 'provider_domain': 'opensubsonic',
1102 'provider_instance': 'xx-instance-id-xx',
1103 'url': None,
1104 }),
1105 ]),
1106 'publisher': None,
1107 'sort_name': 'history of rome, the',
1108 'total_episodes': 5,
1109 'translation_key': None,
1110 'uri': 'http://feeds.feedburner.com/TheHistoryOfRome',
1111 'version': '',
1112 }),
1113 'position': 5,
1114 'provider': 'opensubsonic',
1115 'provider_mappings': list([
1116 dict({
1117 'audio_format': dict({
1118 'bit_depth': 16,
1119 'bit_rate': 0,
1120 'channels': 2,
1121 'codec_type': '?',
1122 'content_type': '?',
1123 'output_format_str': '?',
1124 'sample_rate': 44100,
1125 }),
1126 'available': True,
1127 'details': None,
1128 'in_library': None,
1129 'is_unique': None,
1130 'item_id': 'pd-5$!$pe-1860',
1131 'provider_domain': 'opensubsonic',
1132 'provider_instance': 'xx-instance-id-xx',
1133 'url': None,
1134 }),
1135 ]),
1136 'resume_position_ms': None,
1137 'sort_name': '179- the end',
1138 'translation_key': None,
1139 'uri': 'opensubsonic://podcast_episode/pd-5$!$pe-1860',
1140 'version': '',
1141 })
1142# ---
1143# name: test_parse_episode[no-cover.episode]
1144 dict({
1145 'date_added': None,
1146 'duration': 0,
1147 'external_ids': list([
1148 ]),
1149 'favorite': False,
1150 'fully_played': None,
1151 'is_playable': True,
1152 'item_id': 'pd-5$!$pe-1860',
1153 'media_type': 'podcast_episode',
1154 'metadata': dict({
1155 'chapters': None,
1156 'copyright': None,
1157 'description': 'The history of The History of Rome...Why the Western Empire Fell when it did...Some thoughts on the future...Thank you, goodnight.',
1158 'explicit': None,
1159 'genres': None,
1160 'grouping': None,
1161 'images': list([
1162 dict({
1163 'path': 'pd-5',
1164 'provider': 'xx-instance-id-xx',
1165 'remotely_accessible': False,
1166 'type': 'thumb',
1167 }),
1168 ]),
1169 'label': None,
1170 'languages': None,
1171 'last_refresh': None,
1172 'links': None,
1173 'lrc_lyrics': None,
1174 'lyrics': None,
1175 'mood': None,
1176 'performers': None,
1177 'popularity': None,
1178 'preview': None,
1179 'release_date': '2012-05-06T18:18:38+00:00',
1180 'review': None,
1181 'style': None,
1182 }),
1183 'name': '179- The End',
1184 'podcast': dict({
1185 'date_added': None,
1186 'external_ids': list([
1187 ]),
1188 'favorite': False,
1189 'is_playable': True,
1190 'item_id': 'pd-5',
1191 'media_type': 'podcast',
1192 'metadata': dict({
1193 'chapters': None,
1194 'copyright': None,
1195 'description': 'A weekly podcast tracing the rise, decline and fall of the Roman Empire. Now complete!',
1196 'explicit': None,
1197 'genres': None,
1198 'grouping': None,
1199 'images': list([
1200 dict({
1201 'path': 'pd-5',
1202 'provider': 'xx-instance-id-xx',
1203 'remotely_accessible': False,
1204 'type': 'thumb',
1205 }),
1206 ]),
1207 'label': None,
1208 'languages': None,
1209 'last_refresh': None,
1210 'links': None,
1211 'lrc_lyrics': None,
1212 'lyrics': None,
1213 'mood': None,
1214 'performers': None,
1215 'popularity': None,
1216 'preview': None,
1217 'release_date': None,
1218 'review': None,
1219 'style': None,
1220 }),
1221 'name': 'The History of Rome',
1222 'position': None,
1223 'provider': 'opensubsonic',
1224 'provider_mappings': list([
1225 dict({
1226 'audio_format': dict({
1227 'bit_depth': 16,
1228 'bit_rate': 0,
1229 'channels': 2,
1230 'codec_type': '?',
1231 'content_type': '?',
1232 'output_format_str': '?',
1233 'sample_rate': 44100,
1234 }),
1235 'available': True,
1236 'details': None,
1237 'in_library': None,
1238 'is_unique': None,
1239 'item_id': 'pd-5',
1240 'provider_domain': 'opensubsonic',
1241 'provider_instance': 'xx-instance-id-xx',
1242 'url': None,
1243 }),
1244 ]),
1245 'publisher': None,
1246 'sort_name': 'history of rome, the',
1247 'total_episodes': 5,
1248 'translation_key': None,
1249 'uri': 'http://feeds.feedburner.com/TheHistoryOfRome',
1250 'version': '',
1251 }),
1252 'position': 5,
1253 'provider': 'opensubsonic',
1254 'provider_mappings': list([
1255 dict({
1256 'audio_format': dict({
1257 'bit_depth': 16,
1258 'bit_rate': 0,
1259 'channels': 2,
1260 'codec_type': '?',
1261 'content_type': '?',
1262 'output_format_str': '?',
1263 'sample_rate': 44100,
1264 }),
1265 'available': True,
1266 'details': None,
1267 'in_library': None,
1268 'is_unique': None,
1269 'item_id': 'pd-5$!$pe-1860',
1270 'provider_domain': 'opensubsonic',
1271 'provider_instance': 'xx-instance-id-xx',
1272 'url': None,
1273 }),
1274 ]),
1275 'resume_position_ms': None,
1276 'sort_name': '179- the end',
1277 'translation_key': None,
1278 'uri': 'opensubsonic://podcast_episode/pd-5$!$pe-1860',
1279 'version': '',
1280 })
1281# ---
1282# name: test_parse_episode[no-duration.episode]
1283 dict({
1284 'date_added': None,
1285 'duration': 0,
1286 'external_ids': list([
1287 ]),
1288 'favorite': False,
1289 'fully_played': None,
1290 'is_playable': True,
1291 'item_id': 'pd-5$!$pe-1860',
1292 'media_type': 'podcast_episode',
1293 'metadata': dict({
1294 'chapters': None,
1295 'copyright': None,
1296 'description': 'The history of The History of Rome...Why the Western Empire Fell when it did...Some thoughts on the future...Thank you, goodnight.',
1297 'explicit': None,
1298 'genres': None,
1299 'grouping': None,
1300 'images': list([
1301 dict({
1302 'path': 'pd-5',
1303 'provider': 'xx-instance-id-xx',
1304 'remotely_accessible': False,
1305 'type': 'thumb',
1306 }),
1307 ]),
1308 'label': None,
1309 'languages': None,
1310 'last_refresh': None,
1311 'links': None,
1312 'lrc_lyrics': None,
1313 'lyrics': None,
1314 'mood': None,
1315 'performers': None,
1316 'popularity': None,
1317 'preview': None,
1318 'release_date': '2012-05-06T18:18:38+00:00',
1319 'review': None,
1320 'style': None,
1321 }),
1322 'name': '179- The End',
1323 'podcast': dict({
1324 'date_added': None,
1325 'external_ids': list([
1326 ]),
1327 'favorite': False,
1328 'is_playable': True,
1329 'item_id': 'pd-5',
1330 'media_type': 'podcast',
1331 'metadata': dict({
1332 'chapters': None,
1333 'copyright': None,
1334 'description': 'A weekly podcast tracing the rise, decline and fall of the Roman Empire. Now complete!',
1335 'explicit': None,
1336 'genres': None,
1337 'grouping': None,
1338 'images': list([
1339 dict({
1340 'path': 'pd-5',
1341 'provider': 'xx-instance-id-xx',
1342 'remotely_accessible': False,
1343 'type': 'thumb',
1344 }),
1345 ]),
1346 'label': None,
1347 'languages': None,
1348 'last_refresh': None,
1349 'links': None,
1350 'lrc_lyrics': None,
1351 'lyrics': None,
1352 'mood': None,
1353 'performers': None,
1354 'popularity': None,
1355 'preview': None,
1356 'release_date': None,
1357 'review': None,
1358 'style': None,
1359 }),
1360 'name': 'The History of Rome',
1361 'position': None,
1362 'provider': 'opensubsonic',
1363 'provider_mappings': list([
1364 dict({
1365 'audio_format': dict({
1366 'bit_depth': 16,
1367 'bit_rate': 0,
1368 'channels': 2,
1369 'codec_type': '?',
1370 'content_type': '?',
1371 'output_format_str': '?',
1372 'sample_rate': 44100,
1373 }),
1374 'available': True,
1375 'details': None,
1376 'in_library': None,
1377 'is_unique': None,
1378 'item_id': 'pd-5',
1379 'provider_domain': 'opensubsonic',
1380 'provider_instance': 'xx-instance-id-xx',
1381 'url': None,
1382 }),
1383 ]),
1384 'publisher': None,
1385 'sort_name': 'history of rome, the',
1386 'total_episodes': 5,
1387 'translation_key': None,
1388 'uri': 'http://feeds.feedburner.com/TheHistoryOfRome',
1389 'version': '',
1390 }),
1391 'position': 5,
1392 'provider': 'opensubsonic',
1393 'provider_mappings': list([
1394 dict({
1395 'audio_format': dict({
1396 'bit_depth': 16,
1397 'bit_rate': 0,
1398 'channels': 2,
1399 'codec_type': '?',
1400 'content_type': '?',
1401 'output_format_str': '?',
1402 'sample_rate': 44100,
1403 }),
1404 'available': True,
1405 'details': None,
1406 'in_library': None,
1407 'is_unique': None,
1408 'item_id': 'pd-5$!$pe-1860',
1409 'provider_domain': 'opensubsonic',
1410 'provider_instance': 'xx-instance-id-xx',
1411 'url': None,
1412 }),
1413 ]),
1414 'resume_position_ms': None,
1415 'sort_name': '179- the end',
1416 'translation_key': None,
1417 'uri': 'opensubsonic://podcast_episode/pd-5$!$pe-1860',
1418 'version': '',
1419 })
1420# ---
1421# name: test_parse_playlist[gonic-sample.playlist]
1422 dict({
1423 'date_added': None,
1424 'external_ids': list([
1425 ]),
1426 'favorite': False,
1427 'is_editable': True,
1428 'is_playable': True,
1429 'item_id': 'Mi8xNzQzNzg5NTk5MzM1LTE3NDM3ODk1OTkzMzUubTN1',
1430 'media_type': 'playlist',
1431 'metadata': dict({
1432 'chapters': None,
1433 'copyright': None,
1434 'description': None,
1435 'explicit': None,
1436 'genres': None,
1437 'grouping': None,
1438 'images': list([
1439 dict({
1440 'path': 'al-2250',
1441 'provider': 'xx-instance-id-xx',
1442 'remotely_accessible': False,
1443 'type': 'thumb',
1444 }),
1445 ]),
1446 'label': None,
1447 'languages': None,
1448 'last_refresh': None,
1449 'links': None,
1450 'lrc_lyrics': None,
1451 'lyrics': None,
1452 'mood': None,
1453 'performers': None,
1454 'popularity': None,
1455 'preview': None,
1456 'release_date': None,
1457 'review': None,
1458 'style': None,
1459 }),
1460 'name': "Guns N' Roses - Use Your Illusion",
1461 'owner': '',
1462 'position': None,
1463 'provider': 'opensubsonic',
1464 'provider_mappings': list([
1465 dict({
1466 'audio_format': dict({
1467 'bit_depth': 16,
1468 'bit_rate': 0,
1469 'channels': 2,
1470 'codec_type': '?',
1471 'content_type': '?',
1472 'output_format_str': '?',
1473 'sample_rate': 44100,
1474 }),
1475 'available': True,
1476 'details': None,
1477 'in_library': None,
1478 'is_unique': None,
1479 'item_id': 'Mi8xNzQzNzg5NTk5MzM1LTE3NDM3ODk1OTkzMzUubTN1',
1480 'provider_domain': 'opensubsonic',
1481 'provider_instance': 'xx-instance-id-xx',
1482 'url': None,
1483 }),
1484 ]),
1485 'sort_name': "guns n' roses - use your illusion",
1486 'translation_key': None,
1487 'uri': 'opensubsonic://playlist/Mi8xNzQzNzg5NTk5MzM1LTE3NDM3ODk1OTkzMzUubTN1',
1488 'version': '',
1489 })
1490# ---
1491# name: test_parse_podcast[gonic-sample.podcast]
1492 dict({
1493 'date_added': None,
1494 'external_ids': list([
1495 ]),
1496 'favorite': False,
1497 'is_playable': True,
1498 'item_id': 'pd-5',
1499 'media_type': 'podcast',
1500 'metadata': dict({
1501 'chapters': None,
1502 'copyright': None,
1503 'description': 'A weekly podcast tracing the rise, decline and fall of the Roman Empire. Now complete!',
1504 'explicit': None,
1505 'genres': None,
1506 'grouping': None,
1507 'images': list([
1508 dict({
1509 'path': 'pd-5',
1510 'provider': 'xx-instance-id-xx',
1511 'remotely_accessible': False,
1512 'type': 'thumb',
1513 }),
1514 ]),
1515 'label': None,
1516 'languages': None,
1517 'last_refresh': 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 }),
1529 'name': 'The History of Rome',
1530 'position': None,
1531 'provider': 'opensubsonic',
1532 'provider_mappings': list([
1533 dict({
1534 'audio_format': dict({
1535 'bit_depth': 16,
1536 'bit_rate': 0,
1537 'channels': 2,
1538 'codec_type': '?',
1539 'content_type': '?',
1540 'output_format_str': '?',
1541 'sample_rate': 44100,
1542 }),
1543 'available': True,
1544 'details': None,
1545 'in_library': None,
1546 'is_unique': None,
1547 'item_id': 'pd-5',
1548 'provider_domain': 'opensubsonic',
1549 'provider_instance': 'xx-instance-id-xx',
1550 'url': None,
1551 }),
1552 ]),
1553 'publisher': None,
1554 'sort_name': 'history of rome, the',
1555 'total_episodes': 5,
1556 'translation_key': None,
1557 'uri': 'http://feeds.feedburner.com/TheHistoryOfRome',
1558 'version': '',
1559 })
1560# ---
1561# name: test_parse_podcast[no-episodes.podcast]
1562 dict({
1563 'date_added': None,
1564 'external_ids': list([
1565 ]),
1566 'favorite': False,
1567 'is_playable': True,
1568 'item_id': 'pd-5',
1569 'media_type': 'podcast',
1570 'metadata': dict({
1571 'chapters': None,
1572 'copyright': None,
1573 'description': 'A weekly podcast tracing the rise, decline and fall of the Roman Empire. Now complete!',
1574 'explicit': None,
1575 'genres': None,
1576 'grouping': None,
1577 'images': list([
1578 dict({
1579 'path': 'pd-5',
1580 'provider': 'xx-instance-id-xx',
1581 'remotely_accessible': False,
1582 'type': 'thumb',
1583 }),
1584 ]),
1585 'label': None,
1586 'languages': None,
1587 'last_refresh': None,
1588 'links': None,
1589 'lrc_lyrics': None,
1590 'lyrics': None,
1591 'mood': None,
1592 'performers': None,
1593 'popularity': None,
1594 'preview': None,
1595 'release_date': None,
1596 'review': None,
1597 'style': None,
1598 }),
1599 'name': 'The History of Rome',
1600 'position': None,
1601 'provider': 'opensubsonic',
1602 'provider_mappings': list([
1603 dict({
1604 'audio_format': dict({
1605 'bit_depth': 16,
1606 'bit_rate': 0,
1607 'channels': 2,
1608 'codec_type': '?',
1609 'content_type': '?',
1610 'output_format_str': '?',
1611 'sample_rate': 44100,
1612 }),
1613 'available': True,
1614 'details': None,
1615 'in_library': None,
1616 'is_unique': None,
1617 'item_id': 'pd-5',
1618 'provider_domain': 'opensubsonic',
1619 'provider_instance': 'xx-instance-id-xx',
1620 'url': None,
1621 }),
1622 ]),
1623 'publisher': None,
1624 'sort_name': 'history of rome, the',
1625 'total_episodes': 0,
1626 'translation_key': None,
1627 'uri': 'http://feeds.feedburner.com/TheHistoryOfRome',
1628 'version': '',
1629 })
1630# ---
1631# name: test_parse_track[missing-items.track]
1632 dict({
1633 'album': dict({
1634 'available': True,
1635 'external_ids': list([
1636 ]),
1637 'image': None,
1638 'is_playable': True,
1639 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
1640 'media_type': 'album',
1641 'name': 'Live at The Casbah - 2005-04-29',
1642 'provider': 'xx-instance-id-xx',
1643 'sort_name': 'live at the casbah - 2005-04-29',
1644 'translation_key': None,
1645 'uri': 'xx-instance-id-xx://album/e8a0685e3f3ec6f251649af2b58b8617',
1646 'version': '',
1647 }),
1648 'artists': list([
1649 dict({
1650 'date_added': None,
1651 'external_ids': list([
1652 ]),
1653 'favorite': False,
1654 'is_playable': True,
1655 'item_id': 'fake_artist_unknown',
1656 'media_type': 'artist',
1657 'metadata': dict({
1658 'chapters': None,
1659 'copyright': None,
1660 'description': None,
1661 'explicit': None,
1662 'genres': None,
1663 'grouping': None,
1664 'images': None,
1665 'label': None,
1666 'languages': None,
1667 'last_refresh': None,
1668 'links': None,
1669 'lrc_lyrics': None,
1670 'lyrics': None,
1671 'mood': None,
1672 'performers': None,
1673 'popularity': None,
1674 'preview': None,
1675 'release_date': None,
1676 'review': None,
1677 'style': None,
1678 }),
1679 'name': '[unknown]',
1680 'position': None,
1681 'provider': 'xx-instance-id-xx',
1682 'provider_mappings': list([
1683 dict({
1684 'audio_format': dict({
1685 'bit_depth': 16,
1686 'bit_rate': 0,
1687 'channels': 2,
1688 'codec_type': '?',
1689 'content_type': '?',
1690 'output_format_str': '?',
1691 'sample_rate': 44100,
1692 }),
1693 'available': True,
1694 'details': None,
1695 'in_library': None,
1696 'is_unique': None,
1697 'item_id': 'fake_artist_unknown',
1698 'provider_domain': 'opensubsonic',
1699 'provider_instance': 'xx-instance-id-xx',
1700 'url': None,
1701 }),
1702 ]),
1703 'sort_name': 'unknown]',
1704 'translation_key': None,
1705 'uri': 'xx-instance-id-xx://artist/fake_artist_unknown',
1706 'version': '',
1707 }),
1708 ]),
1709 'date_added': None,
1710 'disc_number': 0,
1711 'duration': 0,
1712 'external_ids': list([
1713 list([
1714 'musicbrainz_recordingid',
1715 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
1716 ]),
1717 ]),
1718 'favorite': True,
1719 'is_playable': True,
1720 'item_id': '082f435a363c32c57d5edb6a678a28d4',
1721 'last_played': 0,
1722 'media_type': 'track',
1723 'metadata': dict({
1724 'chapters': None,
1725 'copyright': None,
1726 'description': None,
1727 'explicit': True,
1728 'genres': list([
1729 'East coast',
1730 'Hip-Hop',
1731 ]),
1732 'grouping': None,
1733 'images': None,
1734 'label': None,
1735 'languages': None,
1736 'last_refresh': None,
1737 'links': None,
1738 'lrc_lyrics': None,
1739 'lyrics': None,
1740 'mood': 'slow',
1741 'performers': list([
1742 'Artist 3',
1743 'Artist 4',
1744 'Artist 5',
1745 ]),
1746 'popularity': None,
1747 'preview': None,
1748 'release_date': None,
1749 'review': None,
1750 'style': None,
1751 }),
1752 'name': '"polar expedition"',
1753 'position': None,
1754 'provider': 'xx-instance-id-xx',
1755 'provider_mappings': list([
1756 dict({
1757 'audio_format': dict({
1758 'bit_depth': 16,
1759 'bit_rate': 0,
1760 'channels': 2,
1761 'codec_type': '?',
1762 'content_type': '?',
1763 'output_format_str': '?',
1764 'sample_rate': 44100,
1765 }),
1766 'available': True,
1767 'details': None,
1768 'in_library': None,
1769 'is_unique': None,
1770 'item_id': '082f435a363c32c57d5edb6a678a28d4',
1771 'provider_domain': 'opensubsonic',
1772 'provider_instance': 'xx-instance-id-xx',
1773 'url': None,
1774 }),
1775 ]),
1776 'sort_name': 'Polar expedition',
1777 'track_number': 0,
1778 'translation_key': None,
1779 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
1780 'version': '',
1781 })
1782# ---
1783# name: test_parse_track[missing-items.track].1
1784 dict({
1785 'album': dict({
1786 'artist': 'pornophonique',
1787 'artistId': '97e0398acf63f9fb930d7d4ce209a52b',
1788 'artists': list([
1789 dict({
1790 'id': 'ar-1',
1791 'name': 'Artist 1',
1792 }),
1793 dict({
1794 'id': 'ar-2',
1795 'name': 'Artist 2',
1796 }),
1797 ]),
1798 'coverArt': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
1799 'created': '2023-03-10T02:19:35.784818075Z',
1800 'discTitles': list([
1801 dict({
1802 'disc': 0,
1803 'title': 'Disc 0 title',
1804 }),
1805 dict({
1806 'disc': 2,
1807 'title': 'Disc 1 title',
1808 }),
1809 ]),
1810 'displayArtist': 'Artist 1 feat. Artist 2',
1811 'duration': 1954,
1812 'explicitStatus': 'explicit',
1813 'genre': 'Hip-Hop',
1814 'genres': list([
1815 dict({
1816 'name': 'Hip-Hop',
1817 }),
1818 dict({
1819 'name': 'East coast',
1820 }),
1821 ]),
1822 'id': 'e8a0685e3f3ec6f251649af2b58b8617',
1823 'isCompilation': False,
1824 'moods': list([
1825 'slow',
1826 'cool',
1827 ]),
1828 'musicBrainzId': '189002e7-3285-4e2e-92a3-7f6c30d407a2',
1829 'name': 'Live at The Casbah - 2005-04-29',
1830 'originalReleaseDate': dict({
1831 'day': 10,
1832 'month': 3,
1833 'year': 2001,
1834 }),
1835 'playCount': 97,
1836 'played': '2023-03-28T00:45:13Z',
1837 'releaseDate': dict({
1838 'day': 10,
1839 'month': 3,
1840 'year': 2001,
1841 }),
1842 'releaseTypes': list([
1843 'Album',
1844 'Remixes',
1845 ]),
1846 'songCount': 8,
1847 'sortName': 'lagerfeuer (8-bit)',
1848 'starred': '2023-03-22T01:51:06Z',
1849 'userRating': 4,
1850 'version': 'Deluxe Edition',
1851 'year': 2007,
1852 }),
1853 'artists': list([
1854 dict({
1855 'date_added': None,
1856 'external_ids': list([
1857 ]),
1858 'favorite': False,
1859 'is_playable': True,
1860 'item_id': 'fake_artist_unknown',
1861 'media_type': 'artist',
1862 'metadata': dict({
1863 'chapters': None,
1864 'copyright': None,
1865 'description': None,
1866 'explicit': None,
1867 'genres': None,
1868 'grouping': None,
1869 'images': None,
1870 'label': None,
1871 'languages': None,
1872 'last_refresh': None,
1873 'links': None,
1874 'lrc_lyrics': None,
1875 'lyrics': None,
1876 'mood': None,
1877 'performers': None,
1878 'popularity': None,
1879 'preview': None,
1880 'release_date': None,
1881 'review': None,
1882 'style': None,
1883 }),
1884 'name': '[unknown]',
1885 'position': None,
1886 'provider': 'xx-instance-id-xx',
1887 'provider_mappings': list([
1888 dict({
1889 'audio_format': dict({
1890 'bit_depth': 16,
1891 'bit_rate': 0,
1892 'channels': 2,
1893 'codec_type': '?',
1894 'content_type': '?',
1895 'output_format_str': '?',
1896 'sample_rate': 44100,
1897 }),
1898 'available': True,
1899 'details': None,
1900 'in_library': None,
1901 'is_unique': None,
1902 'item_id': 'fake_artist_unknown',
1903 'provider_domain': 'opensubsonic',
1904 'provider_instance': 'xx-instance-id-xx',
1905 'url': None,
1906 }),
1907 ]),
1908 'sort_name': 'unknown]',
1909 'translation_key': None,
1910 'uri': 'xx-instance-id-xx://artist/fake_artist_unknown',
1911 'version': '',
1912 }),
1913 ]),
1914 'date_added': None,
1915 'disc_number': 0,
1916 'duration': 0,
1917 'external_ids': list([
1918 list([
1919 'musicbrainz_recordingid',
1920 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
1921 ]),
1922 ]),
1923 'favorite': True,
1924 'is_playable': True,
1925 'item_id': '082f435a363c32c57d5edb6a678a28d4',
1926 'last_played': 0,
1927 'media_type': 'track',
1928 'metadata': dict({
1929 'chapters': None,
1930 'copyright': None,
1931 'description': None,
1932 'explicit': True,
1933 'genres': list([
1934 'East coast',
1935 'Hip-Hop',
1936 ]),
1937 'grouping': None,
1938 'images': None,
1939 'label': None,
1940 'languages': None,
1941 'last_refresh': None,
1942 'links': None,
1943 'lrc_lyrics': None,
1944 'lyrics': None,
1945 'mood': 'slow',
1946 'performers': list([
1947 'Artist 3',
1948 'Artist 4',
1949 'Artist 5',
1950 ]),
1951 'popularity': None,
1952 'preview': None,
1953 'release_date': None,
1954 'review': None,
1955 'style': None,
1956 }),
1957 'name': '"polar expedition"',
1958 'position': None,
1959 'provider': 'xx-instance-id-xx',
1960 'provider_mappings': list([
1961 dict({
1962 'audio_format': dict({
1963 'bit_depth': 16,
1964 'bit_rate': 0,
1965 'channels': 2,
1966 'codec_type': '?',
1967 'content_type': '?',
1968 'output_format_str': '?',
1969 'sample_rate': 44100,
1970 }),
1971 'available': True,
1972 'details': None,
1973 'in_library': None,
1974 'is_unique': None,
1975 'item_id': '082f435a363c32c57d5edb6a678a28d4',
1976 'provider_domain': 'opensubsonic',
1977 'provider_instance': 'xx-instance-id-xx',
1978 'url': None,
1979 }),
1980 ]),
1981 'sort_name': 'Polar expedition',
1982 'track_number': 0,
1983 'translation_key': None,
1984 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
1985 'version': '',
1986 })
1987# ---
1988# name: test_parse_track[navi-various.track]
1989 dict({
1990 'album': dict({
1991 'available': True,
1992 'external_ids': list([
1993 ]),
1994 'image': None,
1995 'is_playable': True,
1996 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
1997 'media_type': 'album',
1998 'name': 'Live at The Casbah - 2005-04-29',
1999 'provider': 'xx-instance-id-xx',
2000 'sort_name': 'live at the casbah - 2005-04-29',
2001 'translation_key': None,
2002 'uri': 'xx-instance-id-xx://album/e8a0685e3f3ec6f251649af2b58b8617',
2003 'version': '',
2004 }),
2005 'artists': list([
2006 dict({
2007 'date_added': None,
2008 'external_ids': list([
2009 ]),
2010 'favorite': False,
2011 'is_playable': True,
2012 'item_id': 'MA-NAVIDROME-The New Deal',
2013 'media_type': 'artist',
2014 'metadata': dict({
2015 'chapters': None,
2016 'copyright': None,
2017 'description': None,
2018 'explicit': None,
2019 'genres': None,
2020 'grouping': None,
2021 'images': None,
2022 'label': None,
2023 'languages': None,
2024 'last_refresh': None,
2025 'links': None,
2026 'lrc_lyrics': None,
2027 'lyrics': None,
2028 'mood': None,
2029 'performers': None,
2030 'popularity': None,
2031 'preview': None,
2032 'release_date': None,
2033 'review': None,
2034 'style': None,
2035 }),
2036 'name': 'The New Deal',
2037 'position': None,
2038 'provider': 'opensubsonic',
2039 'provider_mappings': list([
2040 dict({
2041 'audio_format': dict({
2042 'bit_depth': 16,
2043 'bit_rate': 0,
2044 'channels': 2,
2045 'codec_type': '?',
2046 'content_type': '?',
2047 'output_format_str': '?',
2048 'sample_rate': 44100,
2049 }),
2050 'available': True,
2051 'details': None,
2052 'in_library': None,
2053 'is_unique': None,
2054 'item_id': 'MA-NAVIDROME-The New Deal',
2055 'provider_domain': 'opensubsonic',
2056 'provider_instance': 'xx-instance-id-xx',
2057 'url': None,
2058 }),
2059 ]),
2060 'sort_name': 'new deal, the',
2061 'translation_key': None,
2062 'uri': 'opensubsonic://artist/MA-NAVIDROME-The New Deal',
2063 'version': '',
2064 }),
2065 ]),
2066 'date_added': None,
2067 'disc_number': 0,
2068 'duration': 0,
2069 'external_ids': list([
2070 list([
2071 'musicbrainz_recordingid',
2072 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2073 ]),
2074 ]),
2075 'favorite': True,
2076 'is_playable': True,
2077 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2078 'last_played': 0,
2079 'media_type': 'track',
2080 'metadata': dict({
2081 'chapters': None,
2082 'copyright': None,
2083 'description': None,
2084 'explicit': True,
2085 'genres': list([
2086 'East coast',
2087 'Hip-Hop',
2088 ]),
2089 'grouping': None,
2090 'images': None,
2091 'label': None,
2092 'languages': None,
2093 'last_refresh': None,
2094 'links': None,
2095 'lrc_lyrics': None,
2096 'lyrics': None,
2097 'mood': 'slow',
2098 'performers': list([
2099 'Artist 3',
2100 'Artist 4',
2101 'Artist 5',
2102 ]),
2103 'popularity': None,
2104 'preview': None,
2105 'release_date': None,
2106 'review': None,
2107 'style': None,
2108 }),
2109 'name': '"polar expedition"',
2110 'position': None,
2111 'provider': 'xx-instance-id-xx',
2112 'provider_mappings': list([
2113 dict({
2114 'audio_format': dict({
2115 'bit_depth': 16,
2116 'bit_rate': 0,
2117 'channels': 2,
2118 'codec_type': '?',
2119 'content_type': '?',
2120 'output_format_str': '?',
2121 'sample_rate': 44100,
2122 }),
2123 'available': True,
2124 'details': None,
2125 'in_library': None,
2126 'is_unique': None,
2127 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2128 'provider_domain': 'opensubsonic',
2129 'provider_instance': 'xx-instance-id-xx',
2130 'url': None,
2131 }),
2132 ]),
2133 'sort_name': 'Polar expedition',
2134 'track_number': 0,
2135 'translation_key': None,
2136 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
2137 'version': '',
2138 })
2139# ---
2140# name: test_parse_track[navi-various.track].1
2141 dict({
2142 'album': dict({
2143 'artist': 'pornophonique',
2144 'artistId': '97e0398acf63f9fb930d7d4ce209a52b',
2145 'artists': list([
2146 dict({
2147 'id': 'ar-1',
2148 'name': 'Artist 1',
2149 }),
2150 dict({
2151 'id': 'ar-2',
2152 'name': 'Artist 2',
2153 }),
2154 ]),
2155 'coverArt': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
2156 'created': '2023-03-10T02:19:35.784818075Z',
2157 'discTitles': list([
2158 dict({
2159 'disc': 0,
2160 'title': 'Disc 0 title',
2161 }),
2162 dict({
2163 'disc': 2,
2164 'title': 'Disc 1 title',
2165 }),
2166 ]),
2167 'displayArtist': 'Artist 1 feat. Artist 2',
2168 'duration': 1954,
2169 'explicitStatus': 'explicit',
2170 'genre': 'Hip-Hop',
2171 'genres': list([
2172 dict({
2173 'name': 'Hip-Hop',
2174 }),
2175 dict({
2176 'name': 'East coast',
2177 }),
2178 ]),
2179 'id': 'e8a0685e3f3ec6f251649af2b58b8617',
2180 'isCompilation': False,
2181 'moods': list([
2182 'slow',
2183 'cool',
2184 ]),
2185 'musicBrainzId': '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2186 'name': 'Live at The Casbah - 2005-04-29',
2187 'originalReleaseDate': dict({
2188 'day': 10,
2189 'month': 3,
2190 'year': 2001,
2191 }),
2192 'playCount': 97,
2193 'played': '2023-03-28T00:45:13Z',
2194 'releaseDate': dict({
2195 'day': 10,
2196 'month': 3,
2197 'year': 2001,
2198 }),
2199 'releaseTypes': list([
2200 'Album',
2201 'Remixes',
2202 ]),
2203 'songCount': 8,
2204 'sortName': 'lagerfeuer (8-bit)',
2205 'starred': '2023-03-22T01:51:06Z',
2206 'userRating': 4,
2207 'version': 'Deluxe Edition',
2208 'year': 2007,
2209 }),
2210 'artists': list([
2211 dict({
2212 'date_added': None,
2213 'external_ids': list([
2214 ]),
2215 'favorite': False,
2216 'is_playable': True,
2217 'item_id': 'MA-NAVIDROME-The New Deal',
2218 'media_type': 'artist',
2219 'metadata': dict({
2220 'chapters': None,
2221 'copyright': None,
2222 'description': None,
2223 'explicit': None,
2224 'genres': None,
2225 'grouping': None,
2226 'images': None,
2227 'label': None,
2228 'languages': None,
2229 'last_refresh': None,
2230 'links': None,
2231 'lrc_lyrics': None,
2232 'lyrics': None,
2233 'mood': None,
2234 'performers': None,
2235 'popularity': None,
2236 'preview': None,
2237 'release_date': None,
2238 'review': None,
2239 'style': None,
2240 }),
2241 'name': 'The New Deal',
2242 'position': None,
2243 'provider': 'opensubsonic',
2244 'provider_mappings': list([
2245 dict({
2246 'audio_format': dict({
2247 'bit_depth': 16,
2248 'bit_rate': 0,
2249 'channels': 2,
2250 'codec_type': '?',
2251 'content_type': '?',
2252 'output_format_str': '?',
2253 'sample_rate': 44100,
2254 }),
2255 'available': True,
2256 'details': None,
2257 'in_library': None,
2258 'is_unique': None,
2259 'item_id': 'MA-NAVIDROME-The New Deal',
2260 'provider_domain': 'opensubsonic',
2261 'provider_instance': 'xx-instance-id-xx',
2262 'url': None,
2263 }),
2264 ]),
2265 'sort_name': 'new deal, the',
2266 'translation_key': None,
2267 'uri': 'opensubsonic://artist/MA-NAVIDROME-The New Deal',
2268 'version': '',
2269 }),
2270 ]),
2271 'date_added': None,
2272 'disc_number': 0,
2273 'duration': 0,
2274 'external_ids': list([
2275 list([
2276 'musicbrainz_recordingid',
2277 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2278 ]),
2279 ]),
2280 'favorite': True,
2281 'is_playable': True,
2282 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2283 'last_played': 0,
2284 'media_type': 'track',
2285 'metadata': dict({
2286 'chapters': None,
2287 'copyright': None,
2288 'description': None,
2289 'explicit': True,
2290 'genres': list([
2291 'East coast',
2292 'Hip-Hop',
2293 ]),
2294 'grouping': None,
2295 'images': None,
2296 'label': None,
2297 'languages': None,
2298 'last_refresh': None,
2299 'links': None,
2300 'lrc_lyrics': None,
2301 'lyrics': None,
2302 'mood': 'slow',
2303 'performers': list([
2304 'Artist 3',
2305 'Artist 4',
2306 'Artist 5',
2307 ]),
2308 'popularity': None,
2309 'preview': None,
2310 'release_date': None,
2311 'review': None,
2312 'style': None,
2313 }),
2314 'name': '"polar expedition"',
2315 'position': None,
2316 'provider': 'xx-instance-id-xx',
2317 'provider_mappings': list([
2318 dict({
2319 'audio_format': dict({
2320 'bit_depth': 16,
2321 'bit_rate': 0,
2322 'channels': 2,
2323 'codec_type': '?',
2324 'content_type': '?',
2325 'output_format_str': '?',
2326 'sample_rate': 44100,
2327 }),
2328 'available': True,
2329 'details': None,
2330 'in_library': None,
2331 'is_unique': None,
2332 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2333 'provider_domain': 'opensubsonic',
2334 'provider_instance': 'xx-instance-id-xx',
2335 'url': None,
2336 }),
2337 ]),
2338 'sort_name': 'Polar expedition',
2339 'track_number': 0,
2340 'translation_key': None,
2341 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
2342 'version': '',
2343 })
2344# ---
2345# name: test_parse_track[spec-child.track]
2346 dict({
2347 'album': dict({
2348 'available': True,
2349 'external_ids': list([
2350 ]),
2351 'image': None,
2352 'is_playable': True,
2353 'item_id': 'e8a0685e3f3ec6f251649af2b58b8617',
2354 'media_type': 'album',
2355 'name': 'Live at The Casbah - 2005-04-29',
2356 'provider': 'xx-instance-id-xx',
2357 'sort_name': 'live at the casbah - 2005-04-29',
2358 'translation_key': None,
2359 'uri': 'xx-instance-id-xx://album/e8a0685e3f3ec6f251649af2b58b8617',
2360 'version': '',
2361 }),
2362 'artists': list([
2363 dict({
2364 'available': True,
2365 'external_ids': list([
2366 ]),
2367 'image': None,
2368 'is_playable': True,
2369 'item_id': '97e0398acf63f9fb930d7d4ce209a52b',
2370 'media_type': 'artist',
2371 'name': 'The New Deal',
2372 'provider': 'xx-instance-id-xx',
2373 'sort_name': 'new deal, the',
2374 'translation_key': None,
2375 'uri': 'xx-instance-id-xx://artist/97e0398acf63f9fb930d7d4ce209a52b',
2376 'version': '',
2377 }),
2378 dict({
2379 'available': True,
2380 'external_ids': list([
2381 ]),
2382 'image': None,
2383 'is_playable': True,
2384 'item_id': 'ar-1',
2385 'media_type': 'artist',
2386 'name': 'Artist 1',
2387 'provider': 'xx-instance-id-xx',
2388 'sort_name': 'artist 1',
2389 'translation_key': None,
2390 'uri': 'xx-instance-id-xx://artist/ar-1',
2391 'version': '',
2392 }),
2393 dict({
2394 'available': True,
2395 'external_ids': list([
2396 ]),
2397 'image': None,
2398 'is_playable': True,
2399 'item_id': 'ar-2',
2400 'media_type': 'artist',
2401 'name': 'Artist 2',
2402 'provider': 'xx-instance-id-xx',
2403 'sort_name': 'artist 2',
2404 'translation_key': None,
2405 'uri': 'xx-instance-id-xx://artist/ar-2',
2406 'version': '',
2407 }),
2408 ]),
2409 'date_added': None,
2410 'disc_number': 1,
2411 'duration': 178,
2412 'external_ids': list([
2413 list([
2414 'musicbrainz_recordingid',
2415 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2416 ]),
2417 ]),
2418 'favorite': True,
2419 'is_playable': True,
2420 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2421 'last_played': 0,
2422 'media_type': 'track',
2423 'metadata': dict({
2424 'chapters': None,
2425 'copyright': None,
2426 'description': None,
2427 'explicit': True,
2428 'genres': list([
2429 'East coast',
2430 'Hip-Hop',
2431 ]),
2432 'grouping': None,
2433 'images': None,
2434 'label': None,
2435 'languages': None,
2436 'last_refresh': None,
2437 'links': None,
2438 'lrc_lyrics': None,
2439 'lyrics': None,
2440 'mood': 'slow',
2441 'performers': list([
2442 'Artist 3',
2443 'Artist 4',
2444 'Artist 5',
2445 ]),
2446 'popularity': None,
2447 'preview': None,
2448 'release_date': None,
2449 'review': None,
2450 'style': None,
2451 }),
2452 'name': '"polar expedition"',
2453 'position': None,
2454 'provider': 'xx-instance-id-xx',
2455 'provider_mappings': list([
2456 dict({
2457 'audio_format': dict({
2458 'bit_depth': 16,
2459 'bit_rate': 880,
2460 'channels': 2,
2461 'codec_type': '?',
2462 'content_type': 'flac',
2463 'output_format_str': 'flac',
2464 'sample_rate': 44100,
2465 }),
2466 'available': True,
2467 'details': None,
2468 'in_library': None,
2469 'is_unique': None,
2470 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2471 'provider_domain': 'opensubsonic',
2472 'provider_instance': 'xx-instance-id-xx',
2473 'url': None,
2474 }),
2475 ]),
2476 'sort_name': 'Polar expedition',
2477 'track_number': 4,
2478 'translation_key': None,
2479 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
2480 'version': '',
2481 })
2482# ---
2483# name: test_parse_track[spec-child.track].1
2484 dict({
2485 'album': dict({
2486 'artist': 'pornophonique',
2487 'artistId': '97e0398acf63f9fb930d7d4ce209a52b',
2488 'artists': list([
2489 dict({
2490 'id': 'ar-1',
2491 'name': 'Artist 1',
2492 }),
2493 dict({
2494 'id': 'ar-2',
2495 'name': 'Artist 2',
2496 }),
2497 ]),
2498 'coverArt': 'al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8',
2499 'created': '2023-03-10T02:19:35.784818075Z',
2500 'discTitles': list([
2501 dict({
2502 'disc': 0,
2503 'title': 'Disc 0 title',
2504 }),
2505 dict({
2506 'disc': 2,
2507 'title': 'Disc 1 title',
2508 }),
2509 ]),
2510 'displayArtist': 'Artist 1 feat. Artist 2',
2511 'duration': 1954,
2512 'explicitStatus': 'explicit',
2513 'genre': 'Hip-Hop',
2514 'genres': list([
2515 dict({
2516 'name': 'Hip-Hop',
2517 }),
2518 dict({
2519 'name': 'East coast',
2520 }),
2521 ]),
2522 'id': 'e8a0685e3f3ec6f251649af2b58b8617',
2523 'isCompilation': False,
2524 'moods': list([
2525 'slow',
2526 'cool',
2527 ]),
2528 'musicBrainzId': '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2529 'name': 'Live at The Casbah - 2005-04-29',
2530 'originalReleaseDate': dict({
2531 'day': 10,
2532 'month': 3,
2533 'year': 2001,
2534 }),
2535 'playCount': 97,
2536 'played': '2023-03-28T00:45:13Z',
2537 'releaseDate': dict({
2538 'day': 10,
2539 'month': 3,
2540 'year': 2001,
2541 }),
2542 'releaseTypes': list([
2543 'Album',
2544 'Remixes',
2545 ]),
2546 'songCount': 8,
2547 'sortName': 'lagerfeuer (8-bit)',
2548 'starred': '2023-03-22T01:51:06Z',
2549 'userRating': 4,
2550 'version': 'Deluxe Edition',
2551 'year': 2007,
2552 }),
2553 'artists': list([
2554 dict({
2555 'available': True,
2556 'external_ids': list([
2557 ]),
2558 'image': None,
2559 'is_playable': True,
2560 'item_id': '97e0398acf63f9fb930d7d4ce209a52b',
2561 'media_type': 'artist',
2562 'name': 'The New Deal',
2563 'provider': 'xx-instance-id-xx',
2564 'sort_name': 'new deal, the',
2565 'translation_key': None,
2566 'uri': 'xx-instance-id-xx://artist/97e0398acf63f9fb930d7d4ce209a52b',
2567 'version': '',
2568 }),
2569 dict({
2570 'available': True,
2571 'external_ids': list([
2572 ]),
2573 'image': None,
2574 'is_playable': True,
2575 'item_id': 'ar-1',
2576 'media_type': 'artist',
2577 'name': 'Artist 1',
2578 'provider': 'xx-instance-id-xx',
2579 'sort_name': 'artist 1',
2580 'translation_key': None,
2581 'uri': 'xx-instance-id-xx://artist/ar-1',
2582 'version': '',
2583 }),
2584 dict({
2585 'available': True,
2586 'external_ids': list([
2587 ]),
2588 'image': None,
2589 'is_playable': True,
2590 'item_id': 'ar-2',
2591 'media_type': 'artist',
2592 'name': 'Artist 2',
2593 'provider': 'xx-instance-id-xx',
2594 'sort_name': 'artist 2',
2595 'translation_key': None,
2596 'uri': 'xx-instance-id-xx://artist/ar-2',
2597 'version': '',
2598 }),
2599 ]),
2600 'date_added': None,
2601 'disc_number': 1,
2602 'duration': 178,
2603 'external_ids': list([
2604 list([
2605 'musicbrainz_recordingid',
2606 '189002e7-3285-4e2e-92a3-7f6c30d407a2',
2607 ]),
2608 ]),
2609 'favorite': True,
2610 'is_playable': True,
2611 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2612 'last_played': 0,
2613 'media_type': 'track',
2614 'metadata': dict({
2615 'chapters': None,
2616 'copyright': None,
2617 'description': None,
2618 'explicit': True,
2619 'genres': list([
2620 'East coast',
2621 'Hip-Hop',
2622 ]),
2623 'grouping': None,
2624 'images': None,
2625 'label': None,
2626 'languages': None,
2627 'last_refresh': None,
2628 'links': None,
2629 'lrc_lyrics': None,
2630 'lyrics': None,
2631 'mood': 'slow',
2632 'performers': list([
2633 'Artist 3',
2634 'Artist 4',
2635 'Artist 5',
2636 ]),
2637 'popularity': None,
2638 'preview': None,
2639 'release_date': None,
2640 'review': None,
2641 'style': None,
2642 }),
2643 'name': '"polar expedition"',
2644 'position': None,
2645 'provider': 'xx-instance-id-xx',
2646 'provider_mappings': list([
2647 dict({
2648 'audio_format': dict({
2649 'bit_depth': 16,
2650 'bit_rate': 880,
2651 'channels': 2,
2652 'codec_type': '?',
2653 'content_type': 'flac',
2654 'output_format_str': 'flac',
2655 'sample_rate': 44100,
2656 }),
2657 'available': True,
2658 'details': None,
2659 'in_library': None,
2660 'is_unique': None,
2661 'item_id': '082f435a363c32c57d5edb6a678a28d4',
2662 'provider_domain': 'opensubsonic',
2663 'provider_instance': 'xx-instance-id-xx',
2664 'url': None,
2665 }),
2666 ]),
2667 'sort_name': 'Polar expedition',
2668 'track_number': 4,
2669 'translation_key': None,
2670 'uri': 'xx-instance-id-xx://track/082f435a363c32c57d5edb6a678a28d4',
2671 'version': '',
2672 })
2673# ---
2674