mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-10-23 04:24:00 -07:00
Test reorganization and cleanup. (#18270)
- Correct directory name in test/README.md - Move code-smell tests to test/sanity/code-smell - Update code-smell.sh to use new script paths - Add test/integration/target-prefixes.win for ansible-test - Move module unit tests to match module directory layout
This commit is contained in:
parent
02859a3e32
commit
71819c0a60
15 changed files with 7 additions and 6 deletions
52
test/sanity/code-smell/boilerplate.sh
Executable file
52
test/sanity/code-smell/boilerplate.sh
Executable file
|
@ -0,0 +1,52 @@
|
|||
#!/bin/sh
|
||||
|
||||
metaclass1=$(find ./bin -type f -exec grep -HL '__metaclass__ = type' \{\} \; )
|
||||
future1=$(find ./bin -type f -exec grep -HL 'from __future__ import (absolute_import, division, print_function)' \{\} \;)
|
||||
|
||||
metaclass2=$(find ./lib/ansible -path ./lib/ansible/modules/core -prune \
|
||||
-o -path ./lib/ansible/modules/extras -prune \
|
||||
-o -path ./lib/ansible/module_utils -prune \
|
||||
-o -path ./lib/ansible/compat/six/_six.py -prune \
|
||||
-o -path ./lib/ansible/utils/module_docs_fragments -prune \
|
||||
-o -name '*.py' -exec grep -HL '__metaclass__ = type' \{\} \;)
|
||||
|
||||
future2=$(find ./lib/ansible -path ./lib/ansible/modules/core -prune \
|
||||
-o -path ./lib/ansible/modules/extras -prune \
|
||||
-o -path ./lib/ansible/module_utils -prune \
|
||||
-o -path ./lib/ansible/compat/six/_six.py -prune \
|
||||
-o -path ./lib/ansible/utils/module_docs_fragments -prune \
|
||||
-o -name '*.py' -exec grep -HL 'from __future__ import (absolute_import, division, print_function)' \{\} \;)
|
||||
|
||||
### TODO:
|
||||
### - contrib/
|
||||
### - module_utils that are py2.6+
|
||||
|
||||
|
||||
if test -n "$metaclass1" -o -n "$metaclass2" ; then
|
||||
printf "\n== Missing __metaclass__ = type ==\n"
|
||||
fi
|
||||
|
||||
if test -n "$metaclass1" ; then
|
||||
printf "$metaclass1\n"
|
||||
fi
|
||||
if test -n "$metaclass2" ; then
|
||||
printf "$metaclass2\n"
|
||||
fi
|
||||
|
||||
if test -n "$future1" -o -n "$future2" ; then
|
||||
printf "\n== Missing from __future__ import (absolute_import, division, print_function) ==\n"
|
||||
fi
|
||||
|
||||
if test -n "$future1" ; then
|
||||
printf "$future1\n"
|
||||
fi
|
||||
if test -n "$future2" ; then
|
||||
printf "$future2\n"
|
||||
fi
|
||||
|
||||
if test -n "$future1$future2$metaclass1$metaclass2" ; then
|
||||
failures=$(printf "$future1$future2$metaclass1$metaclass2"| wc -l)
|
||||
failures=$(expr $failures + 2)
|
||||
exit $failures
|
||||
fi
|
||||
exit 0
|
18
test/sanity/code-smell/inappropriately-private.sh
Executable file
18
test/sanity/code-smell/inappropriately-private.sh
Executable file
|
@ -0,0 +1,18 @@
|
|||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Test that we do not access private attributes of other objects.
|
||||
#
|
||||
# * private attributes of ourself are okay: self._private.
|
||||
# * Private attributes of other objects are not: self.other._private
|
||||
#
|
||||
|
||||
# Currently the code has many places where we're violating this test so we need
|
||||
# to clean up the code before we can enable this. Maybe we'll need to
|
||||
# selectively blacklist modules so that we can work on this a piece at a time.
|
||||
#
|
||||
# Also need to implement whitelist for certain things like bundled libraries
|
||||
# that violate this.
|
||||
#
|
||||
# 23-10-2015: Count was 508 lines
|
||||
grep -Pri '(?<!self)\._(?!_)' $1|grep -v modules
|
16
test/sanity/code-smell/no-basestring.sh
Executable file
16
test/sanity/code-smell/no-basestring.sh
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
|
||||
BASEDIR=${1-"."}
|
||||
|
||||
# Not entirely correct but
|
||||
# * basestring is still present and harmless in comments
|
||||
# * basestring is also currently present in modules. Porting of modules is more
|
||||
# of an Ansible 2.3 or greater goal.
|
||||
BASESTRING_USERS=$(grep -r basestring $BASEDIR |grep isinstance| grep -v lib/ansible/compat/six/_six.py|grep -v lib/ansible/module_utils/six.py|grep -v lib/ansible/modules/core|grep -v lib/ansible/modules/extras)
|
||||
|
||||
if test -n "$BASESTRING_USERS" ; then
|
||||
printf "$BASESTRING_USERS"
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
fi
|
13
test/sanity/code-smell/replace-urlopen.sh
Executable file
13
test/sanity/code-smell/replace-urlopen.sh
Executable file
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
|
||||
BASEDIR=${1-"."}
|
||||
|
||||
URLLIB_USERS=$(find "$BASEDIR" -name '*.py' -exec grep -H urlopen \{\} \;)
|
||||
URLLIB_USERS=$(echo "$URLLIB_USERS" | sed '/\(\n\|lib\/ansible\/module_utils\/urls.py\|lib\/ansible\/module_utils\/six.py\|lib\/ansible\/compat\/six\/_six.py\|.tox\)/d')
|
||||
URLLIB_USERS=$(echo "$URLLIB_USERS" | sed '/^[^:]\+:#/d')
|
||||
if test -n "$URLLIB_USERS" ; then
|
||||
printf "$URLLIB_USERS"
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
fi
|
10
test/sanity/code-smell/required-and-default-attributes.sh
Executable file
10
test/sanity/code-smell/required-and-default-attributes.sh
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
|
||||
BASEDIR=${1-"lib/ansible"}
|
||||
cd "$BASEDIR"
|
||||
grep -r FieldAttribute . |grep 'default' | grep 'required'
|
||||
if test $? -eq 0 ; then
|
||||
exit 1
|
||||
fi
|
||||
exit 0
|
||||
|
17
test/sanity/code-smell/use-compat-six.sh
Executable file
17
test/sanity/code-smell/use-compat-six.sh
Executable file
|
@ -0,0 +1,17 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Do we want to check dynamic inventory, bin, etc?
|
||||
BASEDIR=${1-"lib"}
|
||||
# REGEX of individual files where the import of six is not a problem
|
||||
# digital_ocean is checking for six because dopy doesn't specify the
|
||||
# requirement on six so it needs to try importing six to give the correct error
|
||||
# message
|
||||
WHITELIST='(lib/ansible/modules/core/cloud/digital_ocean/digital_ocean.py)'
|
||||
|
||||
SIX_USERS=$(find "$BASEDIR" -name '*.py' -exec grep -wH six \{\} \;|grep import |grep -v ansible.compat| grep -v ansible.module_utils.six| egrep -v "^$WHITELIST:")
|
||||
if test -n "$SIX_USERS" ; then
|
||||
printf "$SIX_USERS"
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
fi
|
Loading…
Add table
Add a link
Reference in a new issue