]>
Commit | Line | Data |
---|---|---|
72f3289a YCH |
1 | #!/usr/bin/env python |
2 | # coding: utf-8 | |
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, get_params) | |
12 | from youtube_dl.compat import compat_urllib_request | |
13 | ||
14 | ||
15 | class TestSocks(unittest.TestCase): | |
16 | @staticmethod | |
17 | def _check_params(attrs): | |
18 | params = get_params() | |
19 | for attr in attrs: | |
20 | if attr not in params: | |
21 | print('Missing %s. Skipping.' % attr) | |
22 | return | |
23 | return params | |
24 | ||
25 | def test_proxy_http(self): | |
26 | params = self._check_params(['primary_proxy', 'primary_server_ip']) | |
27 | if params is None: | |
28 | return | |
29 | ydl = FakeYDL({ | |
30 | 'proxy': params['primary_proxy'] | |
31 | }) | |
32 | self.assertEqual( | |
33 | ydl.urlopen('http://yt-dl.org/ip').read().decode('utf-8'), | |
34 | params['primary_server_ip']) | |
35 | ||
36 | def test_proxy_https(self): | |
37 | params = self._check_params(['primary_proxy', 'primary_server_ip']) | |
38 | if params is None: | |
39 | return | |
40 | ydl = FakeYDL({ | |
41 | 'proxy': params['primary_proxy'] | |
42 | }) | |
43 | self.assertEqual( | |
44 | ydl.urlopen('https://yt-dl.org/ip').read().decode('utf-8'), | |
45 | params['primary_server_ip']) | |
46 | ||
47 | def test_secondary_proxy_http(self): | |
48 | params = self._check_params(['secondary_proxy', 'secondary_server_ip']) | |
49 | if params is None: | |
50 | return | |
51 | ydl = FakeYDL() | |
52 | req = compat_urllib_request.Request('http://yt-dl.org/ip') | |
53 | req.add_header('Ytdl-request-proxy', params['secondary_proxy']) | |
54 | self.assertEqual( | |
55 | ydl.urlopen(req).read().decode('utf-8'), | |
56 | params['secondary_server_ip']) | |
57 | ||
58 | def test_secondary_proxy_https(self): | |
59 | params = self._check_params(['secondary_proxy', 'secondary_server_ip']) | |
60 | if params is None: | |
61 | return | |
62 | ydl = FakeYDL() | |
63 | req = compat_urllib_request.Request('https://yt-dl.org/ip') | |
64 | req.add_header('Ytdl-request-proxy', params['secondary_proxy']) | |
65 | self.assertEqual( | |
66 | ydl.urlopen(req).read().decode('utf-8'), | |
67 | params['secondary_server_ip']) | |
68 | ||
69 | ||
70 | if __name__ == '__main__': | |
71 | unittest.main() |