ansible-test ansible-doc sanity test: also run with --json parameter (#69288)
This commit is contained in:
parent
4794b98f2a
commit
0b82d4499e
2 changed files with 26 additions and 20 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
minor_changes:
|
||||||
|
- "ansible-test - also run the ``ansible-doc`` sanity test with ``--json`` to ensure that the documentation does not contain something that cannot be exported as JSON (https://github.com/ansible/ansible/issues/69238)."
|
|
@ -103,32 +103,36 @@ class AnsibleDocTest(SanitySingleVersion):
|
||||||
error_messages = []
|
error_messages = []
|
||||||
|
|
||||||
for doc_type in sorted(doc_targets):
|
for doc_type in sorted(doc_targets):
|
||||||
cmd = ['ansible-doc', '-t', doc_type] + sorted(doc_targets[doc_type])
|
for format_option in [None, '--json']:
|
||||||
|
cmd = ['ansible-doc', '-t', doc_type]
|
||||||
|
if format_option is not None:
|
||||||
|
cmd.append(format_option)
|
||||||
|
cmd.extend(sorted(doc_targets[doc_type]))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with coverage_context(args):
|
with coverage_context(args):
|
||||||
stdout, stderr = intercept_command(args, cmd, target_name='ansible-doc', env=env, capture=True, python_version=python_version)
|
stdout, stderr = intercept_command(args, cmd, target_name='ansible-doc', env=env, capture=True, python_version=python_version)
|
||||||
|
|
||||||
status = 0
|
status = 0
|
||||||
except SubprocessError as ex:
|
except SubprocessError as ex:
|
||||||
stdout = ex.stdout
|
stdout = ex.stdout
|
||||||
stderr = ex.stderr
|
stderr = ex.stderr
|
||||||
status = ex.status
|
status = ex.status
|
||||||
|
|
||||||
if status:
|
if status:
|
||||||
summary = u'%s' % SubprocessError(cmd=cmd, status=status, stderr=stderr)
|
summary = u'%s' % SubprocessError(cmd=cmd, status=status, stderr=stderr)
|
||||||
return SanityFailure(self.name, summary=summary)
|
return SanityFailure(self.name, summary=summary)
|
||||||
|
|
||||||
if stdout:
|
if stdout:
|
||||||
display.info(stdout.strip(), verbosity=3)
|
display.info(stdout.strip(), verbosity=3)
|
||||||
|
|
||||||
if stderr:
|
if stderr:
|
||||||
# ignore removed module/plugin warnings
|
# ignore removed module/plugin warnings
|
||||||
stderr = re.sub(r'\[WARNING\]: [^ ]+ [^ ]+ has been removed\n', '', stderr).strip()
|
stderr = re.sub(r'\[WARNING\]: [^ ]+ [^ ]+ has been removed\n', '', stderr).strip()
|
||||||
|
|
||||||
if stderr:
|
if stderr:
|
||||||
summary = u'Output on stderr from ansible-doc is considered an error.\n\n%s' % SubprocessError(cmd, stderr=stderr)
|
summary = u'Output on stderr from ansible-doc is considered an error.\n\n%s' % SubprocessError(cmd, stderr=stderr)
|
||||||
return SanityFailure(self.name, summary=summary)
|
return SanityFailure(self.name, summary=summary)
|
||||||
|
|
||||||
if args.explain:
|
if args.explain:
|
||||||
return SanitySuccess(self.name)
|
return SanitySuccess(self.name)
|
||||||
|
|
Loading…
Reference in a new issue