]>
Commit | Line | Data |
---|---|---|
14719565 JMF |
1 | #!/usr/bin/env python |
2 | ||
3 | from __future__ import unicode_literals | |
4 | ||
5 | # Allow direct execution | |
6 | import os | |
7 | import sys | |
8 | import unittest | |
9 | sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | |
10 | ||
11 | from test.helper import FakeYDL | |
12 | from youtube_dl.extractor.common import InfoExtractor | |
13 | from youtube_dl.extractor import YoutubeIE, get_info_extractor | |
14 | ||
15 | ||
16 | class TestIE(InfoExtractor): | |
17 | pass | |
18 | ||
19 | ||
20 | class TestInfoExtractor(unittest.TestCase): | |
21 | def setUp(self): | |
22 | self.ie = TestIE(FakeYDL()) | |
23 | ||
24 | def test_ie_key(self): | |
25 | self.assertEqual(get_info_extractor(YoutubeIE.ie_key()), YoutubeIE) | |
26 | ||
27 | def test_html_search_regex(self): | |
28 | html = '<p id="foo">Watch this <a href="http://www.youtube.com/watch?v=BaW_jenozKc">video</a></p>' | |
29 | search = lambda re, *args: self.ie._html_search_regex(re, html, *args) | |
30 | self.assertEqual(search(r'<p id="foo">(.+?)</p>', 'foo'), 'Watch this video') | |
31 | ||
32 | def test_opengraph(self): | |
33 | ie = self.ie | |
34 | html = ''' | |
35 | <meta name="og:title" content='Foo'/> | |
36 | <meta content="Some video's description " name="og:description"/> | |
37 | <meta property='og:image' content='http://domain.com/pic.jpg?key1=val1&key2=val2'/> | |
1c29e81e | 38 | <meta content='application/x-shockwave-flash' property='og:video:type'> |
db0a8ad9 | 39 | <meta content='Foo' property=og:foobar> |
448ef1f3 S |
40 | <meta name="og:test1" content='foo > < bar'/> |
41 | <meta name="og:test2" content="foo >//< bar"/> | |
14719565 JMF |
42 | ''' |
43 | self.assertEqual(ie._og_search_title(html), 'Foo') | |
44 | self.assertEqual(ie._og_search_description(html), 'Some video\'s description ') | |
45 | self.assertEqual(ie._og_search_thumbnail(html), 'http://domain.com/pic.jpg?key1=val1&key2=val2') | |
1c29e81e | 46 | self.assertEqual(ie._og_search_video_url(html, default=None), None) |
db0a8ad9 | 47 | self.assertEqual(ie._og_search_property('foobar', html), 'Foo') |
448ef1f3 S |
48 | self.assertEqual(ie._og_search_property('test1', html), 'foo > < bar') |
49 | self.assertEqual(ie._og_search_property('test2', html), 'foo >//< bar') | |
14719565 | 50 | |
bec22481 PH |
51 | def test_html_search_meta(self): |
52 | ie = self.ie | |
53 | html = ''' | |
54 | <meta name="a" content="1" /> | |
55 | <meta name='b' content='2'> | |
56 | <meta name="c" content='3'> | |
57 | <meta name=d content='4'> | |
58 | <meta property="e" content='5' > | |
59 | <meta content="6" name="f"> | |
60 | ''' | |
61 | ||
62 | self.assertEqual(ie._html_search_meta('a', html), '1') | |
63 | self.assertEqual(ie._html_search_meta('b', html), '2') | |
64 | self.assertEqual(ie._html_search_meta('c', html), '3') | |
65 | self.assertEqual(ie._html_search_meta('d', html), '4') | |
66 | self.assertEqual(ie._html_search_meta('e', html), '5') | |
67 | self.assertEqual(ie._html_search_meta('f', html), '6') | |
68 | ||
14719565 JMF |
69 | if __name__ == '__main__': |
70 | unittest.main() |