Generalize XML manifest processing code and improve XSPF parsing (closes #15794)
[youtube-dl] / test / test_InfoExtractor.py
index a695ce64b3fbc9a8c9eca4562f8fc94ba2c742b5..4833396a521bf1d7a072db8ad425bed333235248 100644 (file)
@@ -698,40 +698,47 @@ jwplayer("mediaplayer").setup({"abouttext":"Visit Indie DB","aboutlink":"http:\/
         _TEST_CASES = [
             (
                 'foo_xspf',
-                'https://example.org/src/',
+                'https://example.org/src/foo_xspf.xspf',
                 [{
+                    'id': 'foo_xspf',
+                    'title': 'Pandemonium',
                     'description': 'Visit http://bigbrother404.bandcamp.com',
                     'duration': 202.416,
-                    'formats': [{'url': 'https://example.org/src/cd1/track%201.mp3'}],
+                    'formats': [{
+                        'manifest_url': 'https://example.org/src/foo_xspf.xspf',
+                        'url': 'https://example.org/src/cd1/track%201.mp3',
+                    }],
+                }, {
                     'id': 'foo_xspf',
-                    'title': 'Pandemonium'
-                },
-                {
+                    'title': 'Final Cartridge (Nichico Twelve Remix)',
                     'description': 'Visit http://bigbrother404.bandcamp.com',
                     'duration': 255.857,
-                    'formats': [{'url': 'https://example.org/%E3%83%88%E3%83%A9%E3%83%83%E3%82%AF%E3%80%80%EF%BC%92.mp3'}],
+                    'formats': [{
+                        'manifest_url': 'https://example.org/src/foo_xspf.xspf',
+                        'url': 'https://example.org/%E3%83%88%E3%83%A9%E3%83%83%E3%82%AF%E3%80%80%EF%BC%92.mp3',
+                    }],
+                }, {
                     'id': 'foo_xspf',
-                    'title': 'Final Cartridge (Nichico Twelve Remix)'
-                },
-                {
+                    'title': 'Rebuilding Nightingale',
                     'description': 'Visit http://bigbrother404.bandcamp.com',
                     'duration': 287.915,
-                    'formats': [
-                        {'url': 'https://example.org/src/track3.mp3'},
-                        {'url': 'https://example.com/track3.mp3'}
-                    ],
-                    'id': 'foo_xspf',
-                    'title': 'Rebuilding Nightingale'
+                    'formats': [{
+                        'manifest_url': 'https://example.org/src/foo_xspf.xspf',
+                        'url': 'https://example.org/src/track3.mp3',
+                    }, {
+                        'manifest_url': 'https://example.org/src/foo_xspf.xspf',
+                        'url': 'https://example.com/track3.mp3',
+                    }]
                 }]
             ),
         ]
 
-        for xspf_file, xspf_base_url, expected_entries in _TEST_CASES:
+        for xspf_file, xspf_url, expected_entries in _TEST_CASES:
             with io.open('./test/testdata/xspf/%s.xspf' % xspf_file,
                          mode='r', encoding='utf-8') as f:
                 entries = self.ie._parse_xspf(
                     compat_etree_fromstring(f.read().encode('utf-8')),
-                        xspf_file, xspf_base_url)
+                    xspf_file, xspf_url=xspf_url, xspf_base_url=xspf_url)
                 expect_value(self, entries, expected_entries, None)
                 for i in range(len(entries)):
                     expect_dict(self, entries[i], expected_entries[i])