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