summaryrefslogtreecommitdiff
path: root/test/units/plugins/shell/test_cmd.py
blob: 4c1a654b73dafbe6b233ac210e9ec4181e66eb46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type

import pytest

from ansible.plugins.shell.cmd import ShellModule


@pytest.mark.parametrize('s, expected', [
    ['arg1', 'arg1'],
    [None, '""'],
    ['arg1 and 2', '^"arg1 and 2^"'],
    ['malicious argument\\"&whoami', '^"malicious argument\\\\^"^&whoami^"'],
    ['C:\\temp\\some ^%file% > nul', '^"C:\\temp\\some ^^^%file^% ^> nul^"']
])
def test_quote_args(s, expected):
    cmd = ShellModule()
    actual = cmd.quote(s)
    assert actual == expected