Files
ansible/test/units/module_utils/basic/test_command_nonexisting.py
Matt Clay 2cd1744be3 Use ansible.module_utils.common.text.converters (#80704)
Replace use of old `ansible.module_utils._text` and add a unit test to maintain backwards compatibility.
2023-05-03 08:58:00 -07:00

29 lines
908 B
Python

from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
import json
import sys
import pytest
import subprocess
from ansible.module_utils.common.text.converters 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")