import pytest
from pipenv.cmdparse import Script, ScriptEmptyError
@pytest.mark.run
@pytest.mark.script
def test_parse():
script = Script.parse(['python', '-c', "print('hello')"])
assert script.command == 'python'
assert script.args == ['-c', "print('hello')"], script
@pytest.mark.run
@pytest.mark.script
def test_parse_error():
with pytest.raises(ScriptEmptyError) as e:
Script.parse('')
assert str(e.value) == "[]"
@pytest.mark.run
def test_extend():
script = Script('python', ['-c', "print('hello')"])
script.extend(['--verbose'])
assert script.command == 'python'
assert script.args == ['-c', "print('hello')", "--verbose"], script
@pytest.mark.run
@pytest.mark.script
def test_cmdify():
script = Script('python', ['-c', "print('hello')"])
cmd = script.cmdify()
assert cmd == '"python" "-c" "print(\'hello\')"', script
@pytest.mark.run
@pytest.mark.script
def test_cmdify_complex():
script = Script.parse(' '.join([
'"C:\\Program Files\\Python36\\python.exe" -c',
""" "print(\'Double quote: \\\"\')" """.strip(),
]))
assert script.cmdify() == ' '.join([
'"C:\\Program Files\\Python36\\python.exe"',
'"-c"',
""" "print(\'Double quote: \\\"\')" """.strip(),
]), script