]>
Commit | Line | Data |
---|---|---|
3cc687d4 | 1 | #!/usr/bin/env python |
af428956 | 2 | # coding: utf-8 |
3cc687d4 | 3 | |
44a5f171 | 4 | # Allow direct execution |
3cc687d4 | 5 | import os |
3cc687d4 PH |
6 | import sys |
7 | import unittest | |
44a5f171 | 8 | sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) |
3cc687d4 | 9 | |
d0efb9ec | 10 | from test.helper import get_params |
44a5f171 PH |
11 | |
12 | ||
13 | import io | |
14 | import json | |
3cc687d4 | 15 | |
8222d8de | 16 | import youtube_dl.YoutubeDL |
0824c28c | 17 | import youtube_dl.extractor |
3cc687d4 | 18 | |
3cc687d4 | 19 | |
8222d8de | 20 | class YoutubeDL(youtube_dl.YoutubeDL): |
3cc687d4 | 21 | def __init__(self, *args, **kwargs): |
8222d8de | 22 | super(YoutubeDL, self).__init__(*args, **kwargs) |
3cc687d4 PH |
23 | self.to_stderr = self.to_screen |
24 | ||
44a5f171 PH |
25 | params = get_params({ |
26 | 'writeinfojson': True, | |
27 | 'skip_download': True, | |
28 | 'writedescription': True, | |
29 | }) | |
30 | ||
3cc687d4 PH |
31 | |
32 | TEST_ID = 'BaW_jenozKc' | |
08bc37cd | 33 | INFO_JSON_FILE = TEST_ID + '.info.json' |
af428956 PH |
34 | DESCRIPTION_FILE = TEST_ID + '.mp4.description' |
35 | EXPECTED_DESCRIPTION = u'''test chars: "'/\ä↭𝕐 | |
6a656a84 | 36 | test URL: https://github.com/rg3/youtube-dl/issues/1892 |
af428956 PH |
37 | |
38 | This is a test video for youtube-dl. | |
39 | ||
40 | For more information, contact phihag@phihag.de .''' | |
3cc687d4 | 41 | |
44a5f171 | 42 | |
3cc687d4 PH |
43 | class TestInfoJSON(unittest.TestCase): |
44 | def setUp(self): | |
45 | # Clear old files | |
46 | self.tearDown() | |
47 | ||
48 | def test_info_json(self): | |
0824c28c | 49 | ie = youtube_dl.extractor.YoutubeIE() |
8222d8de JMF |
50 | ydl = YoutubeDL(params) |
51 | ydl.add_info_extractor(ie) | |
52 | ydl.download([TEST_ID]) | |
3cc687d4 | 53 | self.assertTrue(os.path.exists(INFO_JSON_FILE)) |
af428956 PH |
54 | with io.open(INFO_JSON_FILE, 'r', encoding='utf-8') as jsonf: |
55 | jd = json.load(jsonf) | |
56 | self.assertEqual(jd['upload_date'], u'20121002') | |
57 | self.assertEqual(jd['description'], EXPECTED_DESCRIPTION) | |
58 | self.assertEqual(jd['id'], TEST_ID) | |
59 | self.assertEqual(jd['extractor'], 'youtube') | |
60 | self.assertEqual(jd['title'], u'''youtube-dl test video "'/\ä↭𝕐''') | |
61 | self.assertEqual(jd['uploader'], 'Philipp Hagemeister') | |
62 | ||
63 | self.assertTrue(os.path.exists(DESCRIPTION_FILE)) | |
64 | with io.open(DESCRIPTION_FILE, 'r', encoding='utf-8') as descf: | |
65 | descr = descf.read() | |
66 | self.assertEqual(descr, EXPECTED_DESCRIPTION) | |
3cc687d4 PH |
67 | |
68 | def tearDown(self): | |
69 | if os.path.exists(INFO_JSON_FILE): | |
70 | os.remove(INFO_JSON_FILE) | |
af428956 PH |
71 | if os.path.exists(DESCRIPTION_FILE): |
72 | os.remove(DESCRIPTION_FILE) | |
3cc687d4 PH |
73 | |
74 | if __name__ == '__main__': | |
75 | unittest.main() |