summaryrefslogtreecommitdiffstats
path: root/test/units/module_utils/basic/test_command_nonexisting.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/units/module_utils/basic/test_command_nonexisting.py')
-rw-r--r--test/units/module_utils/basic/test_command_nonexisting.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/units/module_utils/basic/test_command_nonexisting.py b/test/units/module_utils/basic/test_command_nonexisting.py
new file mode 100644
index 0000000..6ed7f91
--- /dev/null
+++ b/test/units/module_utils/basic/test_command_nonexisting.py
@@ -0,0 +1,31 @@
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+import sys
+import pytest
+import json
+import sys
+import pytest
+import subprocess
+import ansible.module_utils.basic
+from ansible.module_utils._text import to_bytes
+from ansible.module_utils import basic
+
+
+def test_run_non_existent_command(monkeypatch):
+ """ Test that `command` returns std{out,err} even if the executable is not found """
+ def fail_json(msg, **kwargs):
+ assert kwargs["stderr"] == b''
+ assert kwargs["stdout"] == b''
+ sys.exit(1)
+
+ def popen(*args, **kwargs):
+ raise OSError()
+
+ monkeypatch.setattr(basic, '_ANSIBLE_ARGS', to_bytes(json.dumps({'ANSIBLE_MODULE_ARGS': {}})))
+ monkeypatch.setattr(subprocess, 'Popen', popen)
+
+ am = basic.AnsibleModule(argument_spec={})
+ monkeypatch.setattr(am, 'fail_json', fail_json)
+ with pytest.raises(SystemExit):
+ am.run_command("lecho", "whatever")