forked from hagleitn/Openstack-Devstack2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
run_tests.sh
executable file
·121 lines (104 loc) · 2.68 KB
/
run_tests.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/bin/bash
set -u
NOSEARGS=
JUST_PEP8=0
# this flag will get set to 1 if any tests fail
FAILED_TESTS=0
function usage {
echo "Usage: $0 [OPTION]..."
echo "Run anvils test suite."
echo ""
echo " -p, --pep8 Just run pep8"
echo " -h, --help Print this usage message"
echo " -c, --coverage Generate coverage report"
echo ""
exit
}
function process_option {
case "$1" in
-h|--help) usage;;
-p|--pep8) let JUST_PEP8=1;;
-c|--coverage) NOSEARGS="$NOSEARGS --with-coverage --cover-package=anvil";;
*) NOSEARGS="$NOSEARGS $1"
esac
}
function find_code {
files=`find anvil -type f | grep "py\$"`
echo $files
}
function run_pep8 {
echo "+ Running pep8 ..."
files=$(find_code)
ignores="E202,E501,E128,E127,E126,E125,E124,E123,E121"
output_filename="pep8.log"
opts="--ignore=$ignores --repeat"
pep8 ${opts} ${files} 2>&1 > $output_filename
# Exit code is always 1 if any error or warning is found.
if [ "$?" -ne "0" ]; then
echo "Some badness was found!"
echo "Check '$output_filename' for a full report."
FAILED_TESTS=1
else
echo "You are a pep8 guru!"
fi
}
function run_pylint {
echo "+ Running pylint ..."
opts="--rcfile=pylintrc --output-format=parseable"
files=$(find_code)
output_filename="pylint.log"
pylint ${opts} ${files} 2>&1 > $output_filename
if [ "$?" -eq "1" ]; then
# pylint --long-help
# * 0 if everything went fine
# * 1 if a fatal message was issued
# * 2 if an error message was issued
# * 4 if a warning message was issued
# * 8 if a refactor message was issued
# * 16 if a convention message was issued
# * 32 on usage error
echo "A fatal pylint error occurred!"
FAILED_TESTS=1
else
if [ "$?" -eq "0" ]; then
echo "Your code is perfect you code master!"
else
echo "You are not yet a code master."
grep -i "Your code" $output_filename
echo "Check '$output_filename' for a full report."
fi
fi
}
function run_tests {
echo "+ Running tests ..."
# Cleanup *.pyc
find . -type f -name "*.pyc" -delete
$NOSETESTS
if [ "$?" -ne "0" ]; then
FAILED_TESTS=1
fi
}
function validate_yaml {
echo "+ Validating YAML files..."
for f in `find conf/ -name *.yaml -type f`; do
echo "Checking yaml file: $f"
python tools/validate-yaml.py $f
if [ "$?" -ne "0" ]; then
echo "File: $f has some badness in it!"
FAILED_TESTS=1
fi
done
}
for arg in "$@"; do
process_option $arg
done
export NOSETESTS="nosetests $NOSEARGS"
if [ $JUST_PEP8 -eq 1 ]; then
run_pep8
exit $FAILED_TESTS
fi
run_tests
run_pep8
run_pylint
validate_yaml
exit $FAILED_TESTS