[options] Handle special characters in argv (Fixes #5157)
This commit is contained in:
parent
b0872c19ea
commit
f5e2efbbf0
|
@ -1,4 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
# coding: utf-8
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import unittest
|
import unittest
|
||||||
|
@ -27,5 +29,12 @@ class TestExecution(unittest.TestCase):
|
||||||
def test_main_exec(self):
|
def test_main_exec(self):
|
||||||
subprocess.check_call([sys.executable, 'youtube_dl/__main__.py', '--version'], cwd=rootDir, stdout=_DEV_NULL)
|
subprocess.check_call([sys.executable, 'youtube_dl/__main__.py', '--version'], cwd=rootDir, stdout=_DEV_NULL)
|
||||||
|
|
||||||
|
def test_cmdline_umlauts(self):
|
||||||
|
p = subprocess.Popen(
|
||||||
|
[sys.executable, 'youtube_dl/__main__.py', 'ä', '--version'],
|
||||||
|
cwd=rootDir, stdout=_DEV_NULL, stderr=subprocess.PIPE)
|
||||||
|
_, stderr = p.communicate()
|
||||||
|
self.assertFalse(stderr)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
|
@ -794,6 +794,11 @@ def parseOpts(overrideArguments=None):
|
||||||
write_string('[debug] Override config: ' + repr(overrideArguments) + '\n')
|
write_string('[debug] Override config: ' + repr(overrideArguments) + '\n')
|
||||||
else:
|
else:
|
||||||
command_line_conf = sys.argv[1:]
|
command_line_conf = sys.argv[1:]
|
||||||
|
# Workaround for Python 2.x, where argv is a byte list
|
||||||
|
if sys.version_info < (3,):
|
||||||
|
command_line_conf = [
|
||||||
|
a.decode('utf-8', 'replace') for a in command_line_conf]
|
||||||
|
|
||||||
if '--ignore-config' in command_line_conf:
|
if '--ignore-config' in command_line_conf:
|
||||||
system_conf = []
|
system_conf = []
|
||||||
user_conf = []
|
user_conf = []
|
||||||
|
|
Loading…
Reference in New Issue