|
@@ -694,6 +694,48 @@ jwplayer("mediaplayer").setup({"abouttext":"Visit Indie DB","aboutlink":"http:\/
|
|
self.ie._sort_formats(formats)
|
|
self.ie._sort_formats(formats)
|
|
expect_value(self, formats, expected_formats, None)
|
|
expect_value(self, formats, expected_formats, None)
|
|
|
|
|
|
|
|
+ def test_parse_xspf(self):
|
|
|
|
+ _TEST_CASES = [
|
|
|
|
+ (
|
|
|
|
+ 'foo_xspf',
|
|
|
|
+ 'https://example.org/src/',
|
|
|
|
+ [{
|
|
|
|
+ 'description': 'Visit http://bigbrother404.bandcamp.com',
|
|
|
|
+ 'duration': 202.416,
|
|
|
|
+ 'formats': [{'url': 'https://example.org/src/cd1/track%201.mp3'}],
|
|
|
|
+ 'id': 'foo_xspf',
|
|
|
|
+ 'title': 'Pandemonium'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ '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'}],
|
|
|
|
+ 'id': 'foo_xspf',
|
|
|
|
+ 'title': 'Final Cartridge (Nichico Twelve Remix)'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ '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'
|
|
|
|
+ }]
|
|
|
|
+ ),
|
|
|
|
+ ]
|
|
|
|
+
|
|
|
|
+ for xspf_file, xspf_base_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)
|
|
|
|
+ expect_value(self, entries, expected_entries, None)
|
|
|
|
+ for i in range(len(entries)):
|
|
|
|
+ expect_dict(self, entries[i], expected_entries[i])
|
|
|
|
+
|
|
|
|
|
|
if __name__ == '__main__':
|
|
if __name__ == '__main__':
|
|
unittest.main()
|
|
unittest.main()
|