summaryrefslogtreecommitdiffstats
path: root/test/units/plugins/shell/test_cmd.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/units/plugins/shell/test_cmd.py')
-rw-r--r--test/units/plugins/shell/test_cmd.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/units/plugins/shell/test_cmd.py b/test/units/plugins/shell/test_cmd.py
new file mode 100644
index 00000000..4c1a654b
--- /dev/null
+++ b/test/units/plugins/shell/test_cmd.py
@@ -0,0 +1,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