summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorRicardo Constantino <[email protected]>2018-03-07 21:31:53 +0000
committerSergey M․ <[email protected]>2018-03-18 02:48:44 +0700
commit96b8b9abaecb7518d901dc9d6a617f19c3161236 (patch)
treeaa320ed4589f11131c381e08777265229424ff9c /test
parent178ee88319a384b66d9b2da27a819f32ba870425 (diff)
downloadyoutube-dl-96b8b9abaecb7518d901dc9d6a617f19c3161236.tar.gz
youtube-dl-96b8b9abaecb7518d901dc9d6a617f19c3161236.zip
[extractor/generic] Support relative URIs in _parse_xspf
<location> can have relative URIs, not just absolute.
Diffstat (limited to 'test')
-rw-r--r--test/test_InfoExtractor.py42
-rw-r--r--test/testdata/xspf/foo_xspf.xspf34
2 files changed, 76 insertions, 0 deletions
diff --git a/test/test_InfoExtractor.py b/test/test_InfoExtractor.py
index 7b31d5198..a695ce64b 100644
--- a/test/test_InfoExtractor.py
+++ b/test/test_InfoExtractor.py
@@ -694,6 +694,48 @@ jwplayer("mediaplayer").setup({"abouttext":"Visit Indie DB","aboutlink":"http:\/
self.ie._sort_formats(formats)
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__':
unittest.main()
diff --git a/test/testdata/xspf/foo_xspf.xspf b/test/testdata/xspf/foo_xspf.xspf
new file mode 100644
index 000000000..b7f0086b3
--- /dev/null
+++ b/test/testdata/xspf/foo_xspf.xspf
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<playlist version="1" xmlns="http://xspf.org/ns/0/">
+ <date>2018-03-09T18:01:43Z</date>
+ <trackList>
+ <track>
+ <location>cd1/track%201.mp3</location>
+ <title>Pandemonium</title>
+ <creator>Foilverb</creator>
+ <annotation>Visit http://bigbrother404.bandcamp.com</annotation>
+ <album>Pandemonium EP</album>
+ <trackNum>1</trackNum>
+ <duration>202416</duration>
+ </track>
+ <track>
+ <location>../%E3%83%88%E3%83%A9%E3%83%83%E3%82%AF%E3%80%80%EF%BC%92.mp3</location>
+ <title>Final Cartridge (Nichico Twelve Remix)</title>
+ <annotation>Visit http://bigbrother404.bandcamp.com</annotation>
+ <creator>Foilverb</creator>
+ <album>Pandemonium EP</album>
+ <trackNum>2</trackNum>
+ <duration>255857</duration>
+ </track>
+ <track>
+ <location>track3.mp3</location>
+ <location>https://example.com/track3.mp3</location>
+ <title>Rebuilding Nightingale</title>
+ <annotation>Visit http://bigbrother404.bandcamp.com</annotation>
+ <creator>Foilverb</creator>
+ <album>Pandemonium EP</album>
+ <trackNum>3</trackNum>
+ <duration>287915</duration>
+ </track>
+ </trackList>
+</playlist>