mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-26 20:31:27 -07:00
[PR #8387/da2c87ce backport][stable-9] fix test helper handling of rc (#8414)
fix test helper handling of rc (#8387)
* fix test helper handling of rc
* fix side_effect logic for rc != 0
* fix side_effect func + sanity tests
* fix ignore files
* fix code
* revamp the generator for run_command calls returns in testcase
* remove unused import
* Update tests/sanity/ignore-2.18.txt
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update tests/sanity/ignore-2.17.txt
Co-authored-by: Felix Fontein <felix@fontein.de>
---------
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit da2c87ce0d
)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
This commit is contained in:
parent
23af148021
commit
802f8ea224
4 changed files with 16 additions and 8 deletions
|
@ -9,7 +9,6 @@ __metaclass__ = type
|
|||
import sys
|
||||
import json
|
||||
from collections import namedtuple
|
||||
from itertools import chain, repeat
|
||||
|
||||
import pytest
|
||||
import yaml
|
||||
|
@ -76,12 +75,21 @@ class _RunCmdContext(_BaseContext):
|
|||
self.mock_run_cmd = self._make_mock_run_cmd()
|
||||
|
||||
def _make_mock_run_cmd(self):
|
||||
call_results = [(x.rc, x.out, x.err) for x in self.run_cmd_calls]
|
||||
error_call_results = (123,
|
||||
"OUT: testcase has not enough run_command calls",
|
||||
"ERR: testcase has not enough run_command calls")
|
||||
def _results():
|
||||
for result in [(x.rc, x.out, x.err) for x in self.run_cmd_calls]:
|
||||
yield result
|
||||
raise Exception("testcase has not enough run_command calls")
|
||||
|
||||
results = _results()
|
||||
|
||||
def side_effect(self_, **kwargs):
|
||||
result = next(results)
|
||||
if kwargs.get("check_rc", False) and result[0] != 0:
|
||||
raise Exception("rc = {0}".format(result[0]))
|
||||
return result
|
||||
|
||||
mock_run_command = self.mocker.patch('ansible.module_utils.basic.AnsibleModule.run_command',
|
||||
side_effect=chain(call_results, repeat(error_call_results)))
|
||||
side_effect=side_effect)
|
||||
return mock_run_command
|
||||
|
||||
def check_results(self, results):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue