]>
Commit | Line | Data |
---|---|---|
cc52de43 | 1 | #!/usr/bin/env python3 |
f5e2efbb PH |
2 | # coding: utf-8 |
3 | ||
a0f59cdc PH |
4 | from __future__ import unicode_literals |
5 | ||
e575b682 PH |
6 | import unittest |
7 | ||
8 | import sys | |
9 | import os | |
10 | import subprocess | |
ff02a228 S |
11 | sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) |
12 | ||
7a5c1cfe | 13 | from yt_dlp.utils import encodeArgument |
e575b682 PH |
14 | |
15 | rootDir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | |
16 | ||
a0f59cdc | 17 | |
e575b682 PH |
18 | try: |
19 | _DEV_NULL = subprocess.DEVNULL | |
20 | except AttributeError: | |
21 | _DEV_NULL = open(os.devnull, 'wb') | |
22 | ||
a0f59cdc | 23 | |
e575b682 PH |
24 | class TestExecution(unittest.TestCase): |
25 | def test_import(self): | |
7a5c1cfe | 26 | subprocess.check_call([sys.executable, '-c', 'import yt_dlp'], cwd=rootDir) |
e575b682 PH |
27 | |
28 | def test_module_exec(self): | |
a0f59cdc | 29 | if sys.version_info >= (2, 7): # Python 2.6 doesn't support package execution |
7a5c1cfe | 30 | subprocess.check_call([sys.executable, '-m', 'yt_dlp', '--version'], cwd=rootDir, stdout=_DEV_NULL) |
e575b682 PH |
31 | |
32 | def test_main_exec(self): | |
7a5c1cfe | 33 | subprocess.check_call([sys.executable, 'yt_dlp/__main__.py', '--version'], cwd=rootDir, stdout=_DEV_NULL) |
e575b682 | 34 | |
f5e2efbb PH |
35 | def test_cmdline_umlauts(self): |
36 | p = subprocess.Popen( | |
7a5c1cfe | 37 | [sys.executable, 'yt_dlp/__main__.py', encodeArgument('ä'), '--version'], |
f5e2efbb PH |
38 | cwd=rootDir, stdout=_DEV_NULL, stderr=subprocess.PIPE) |
39 | _, stderr = p.communicate() | |
40 | self.assertFalse(stderr) | |
41 | ||
1bdae7d3 | 42 | def test_lazy_extractors(self): |
43 | try: | |
44 | subprocess.check_call([sys.executable, 'devscripts/make_lazy_extractors.py', 'yt_dlp/extractor/lazy_extractors.py'], cwd=rootDir, stdout=_DEV_NULL) | |
45 | subprocess.check_call([sys.executable, 'test/test_all_urls.py'], cwd=rootDir, stdout=_DEV_NULL) | |
46 | finally: | |
47 | try: | |
48 | os.remove('yt_dlp/extractor/lazy_extractors.py') | |
49 | except (IOError, OSError): | |
50 | pass | |
51 | ||
582be358 | 52 | |
e575b682 PH |
53 | if __name__ == '__main__': |
54 | unittest.main() |