mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
[PR #3019/27ba98a6 backport][stable-2] Check targets (#3021)
* Check targets (#3019) * Add extra sanity test to check aliases files. * Remove invalid target name. (cherry picked from commit27ba98a68e
) * Enable tests (#3015) * Enable tests. * Fix error message check. * Fix boolean tests. * Adjust to Python version. (cherry picked from commit9b1c6f0743
) Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
4391507a72
commit
af0ee5438c
7 changed files with 87 additions and 14 deletions
|
@ -1 +1 @@
|
|||
shippable/posix/group4
|
||||
shippable/posix/group2
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
- name: assert failing dependency
|
||||
assert:
|
||||
that:
|
||||
- result.failed is true
|
||||
- result is failed
|
||||
- '"Failed to import" in result.msg'
|
||||
- '"nopackagewiththisname" in result.msg'
|
||||
- '"ModuleNotFoundError:" in result.exception'
|
||||
- '"ModuleNotFoundError:" in result.exception or "ImportError:" in result.exception'
|
||||
- '"nopackagewiththisname" in result.exception'
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
that:
|
||||
- simple1.a == 80
|
||||
- simple1.abc == "abc"
|
||||
- simple1.changed is false
|
||||
- simple1 is not changed
|
||||
- simple1.value is none
|
||||
|
||||
- name: test msimple 2
|
||||
|
@ -23,8 +23,8 @@
|
|||
- simple2.a == 101
|
||||
- 'simple2.msg == "Module failed with exception: a >= 100"'
|
||||
- simple2.abc == "abc"
|
||||
- simple2.failed is true
|
||||
- simple2.changed is false
|
||||
- simple2 is failed
|
||||
- simple2 is not changed
|
||||
- simple2.value is none
|
||||
|
||||
- name: test msimple 3
|
||||
|
@ -39,7 +39,7 @@
|
|||
- simple3.a == 2
|
||||
- simple3.b == "potatoespotatoes"
|
||||
- simple3.c == "NoneNone"
|
||||
- simple3.changed is false
|
||||
- simple3 is not changed
|
||||
|
||||
- name: test msimple 4
|
||||
msimple:
|
||||
|
@ -51,4 +51,4 @@
|
|||
that:
|
||||
- simple4.c == "abc change"
|
||||
- simple4.abc == "changed abc"
|
||||
- simple4.changed is true
|
||||
- simple4 is changed
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
- state1.b == "banana"
|
||||
- state1.c == "cashew"
|
||||
- state1.result == "abc"
|
||||
- state1.changed is false
|
||||
- state1 is not changed
|
||||
|
||||
- name: test mstate 2
|
||||
mstate:
|
||||
|
@ -29,7 +29,7 @@
|
|||
- state2.b == "banana"
|
||||
- state2.c == "cashew"
|
||||
- state2.result == "80bananacashew"
|
||||
- state2.changed is true
|
||||
- state2 is changed
|
||||
|
||||
- name: test mstate 3
|
||||
mstate:
|
||||
|
@ -44,7 +44,7 @@
|
|||
- state3.a == 3
|
||||
- state3.b == "banana"
|
||||
- state3.result == "bananabananabanana"
|
||||
- state3.changed is true
|
||||
- state3 is changed
|
||||
|
||||
- name: test mstate 4
|
||||
mstate:
|
||||
|
@ -59,7 +59,7 @@
|
|||
- state4.a == 4
|
||||
- state4.c == "cashew"
|
||||
- state4.result == "cashewcashewcashewcashew"
|
||||
- state4.changed is true
|
||||
- state4 is changed
|
||||
|
||||
- name: test mstate 5
|
||||
mstate:
|
||||
|
@ -76,4 +76,4 @@
|
|||
- state5.b == "foo"
|
||||
- state5.c == "bar"
|
||||
- state5.result == "foobarfoobarfoobarfoobarfoobar"
|
||||
- state5.changed is true
|
||||
- state5 is changed
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
notification/mqtt
|
||||
shippable/posix/group1
|
||||
skip/aix
|
||||
skip/osx
|
||||
|
|
11
tests/sanity/extra/aliases.json
Normal file
11
tests/sanity/extra/aliases.json
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"include_symlinks": false,
|
||||
"prefixes": [
|
||||
".azure-pipelines/azure-pipelines.yml",
|
||||
"tests/integration/targets/"
|
||||
],
|
||||
"output": "path-message",
|
||||
"requirements": [
|
||||
"PyYAML"
|
||||
]
|
||||
}
|
63
tests/sanity/extra/aliases.py
Executable file
63
tests/sanity/extra/aliases.py
Executable file
|
@ -0,0 +1,63 @@
|
|||
#!/usr/bin/env python
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
"""Check extra collection docs with antsibull-lint."""
|
||||
from __future__ import (absolute_import, division, print_function)
|
||||
__metaclass__ = type
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
import yaml
|
||||
|
||||
|
||||
def main():
|
||||
"""Main entry point."""
|
||||
paths = sys.argv[1:] or sys.stdin.read().splitlines()
|
||||
paths = [path for path in paths if path.endswith('/aliases')]
|
||||
|
||||
with open('.azure-pipelines/azure-pipelines.yml', 'rb') as f:
|
||||
azp = yaml.safe_load(f)
|
||||
|
||||
allowed_targets = set(['shippable/cloud/group1'])
|
||||
for stage in azp['stages']:
|
||||
if stage['stage'].startswith(('Sanity', 'Unit', 'Cloud', 'Summary')):
|
||||
continue
|
||||
for job in stage['jobs']:
|
||||
for group in job['parameters']['groups']:
|
||||
allowed_targets.add('shippable/posix/group{0}'.format(group))
|
||||
|
||||
for path in paths:
|
||||
targets = []
|
||||
skip = False
|
||||
with open(path, 'r') as f:
|
||||
for line in f:
|
||||
if '#' in line:
|
||||
line = line[:line.find('#')]
|
||||
line = line.strip()
|
||||
if line.startswith('needs/'):
|
||||
continue
|
||||
if line.startswith('skip/'):
|
||||
continue
|
||||
if line.startswith('cloud/'):
|
||||
continue
|
||||
if line in ('unsupported', 'disabled', 'hidden'):
|
||||
skip = True
|
||||
if line in ('destructive', ):
|
||||
continue
|
||||
if '/' not in line:
|
||||
continue
|
||||
targets.append(line)
|
||||
if skip:
|
||||
continue
|
||||
if not targets:
|
||||
if 'targets/setup_' in path:
|
||||
continue
|
||||
print('%s: %s' % (path, 'found no targets'))
|
||||
for target in targets:
|
||||
if target not in allowed_targets:
|
||||
print('%s: %s' % (path, 'found invalid target "{0}"'.format(target)))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Loading…
Reference in a new issue