diff --git a/lib/ansible/modules/cloud/misc/terraform.py b/lib/ansible/modules/cloud/misc/terraform.py index b74b468d8e6..1d54be2f4bf 100644 --- a/lib/ansible/modules/cloud/misc/terraform.py +++ b/lib/ansible/modules/cloud/misc/terraform.py @@ -359,6 +359,7 @@ def main(): module.params.get('targets'), state, plan_file) command.append(plan_file) + out, err = '', '' if needs_application and not module.check_mode and not state == 'planned': rc, out, err = module.run_command(command, cwd=project_path) # checks out to decide if changes were made during execution diff --git a/test/units/modules/cloud/misc/test_terraform.py b/test/units/modules/cloud/misc/test_terraform.py new file mode 100644 index 00000000000..77c1a5375e1 --- /dev/null +++ b/test/units/modules/cloud/misc/test_terraform.py @@ -0,0 +1,20 @@ +# Copyright: (c) 2019, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +import json + +import pytest + +from ansible.modules.cloud.misc import terraform +from units.modules.utils import set_module_args + + +def test_terraform_without_argument(capfd): + set_module_args({}) + with pytest.raises(SystemExit) as results: + terraform.main() + + out, err = capfd.readouterr() + assert not err + assert json.loads(out)['failed'] + assert 'project_path' in json.loads(out)['msg']