-
Notifications
You must be signed in to change notification settings - Fork 210
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Clean up test environment and remove unused imports.
First round of adding more complete unit test coverage. Change-Id: Ic1979c499ca6fcb784892a95954a3527539c4e53
- Loading branch information
Showing
15 changed files
with
377 additions
and
57 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
<[email protected]> <[email protected]> | ||
<[email protected]> <[email protected]> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -21,7 +21,6 @@ | |
|
||
from Crypto.Cipher import AES | ||
|
||
import crypt | ||
import keyring | ||
import os | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,8 +23,6 @@ | |
import sys | ||
import uuid | ||
|
||
import prettytable | ||
|
||
from openstackclient.common import exceptions | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -21,7 +21,6 @@ | |
|
||
import logging | ||
import os | ||
import sys | ||
import time | ||
|
||
from cliff import command | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,49 +1,152 @@ | ||
#!/bin/bash | ||
|
||
set -eu | ||
|
||
function usage { | ||
echo "Usage: $0 [OPTION]..." | ||
echo "Run python-openstackclient's test suite(s)" | ||
echo "Run python-openstackclient test suite" | ||
echo "" | ||
echo " -V, --virtual-env Always use virtualenv. Install automatically if not present" | ||
echo " -N, --no-virtual-env Don't use virtualenv. Run tests in local environment" | ||
echo " -s, --no-site-packages Isolate the virtualenv from the global Python environment" | ||
echo " -x, --stop Stop running tests after the first error or failure." | ||
echo " -f, --force Force a clean re-build of the virtual environment. Useful when dependencies have been added." | ||
echo " -p, --pep8 Just run pep8" | ||
echo " -P, --no-pep8 Don't run pep8" | ||
echo " -c, --coverage Generate coverage report" | ||
echo " -h, --help Print this usage message" | ||
echo " --hide-elapsed Don't print the elapsed time for each test along with slow test list" | ||
echo "" | ||
echo "This script is deprecated and currently retained for compatibility." | ||
echo 'You can run the full test suite for multiple environments by running "tox".' | ||
echo 'You can run tests for only python 2.7 by running "tox -e py27", or run only' | ||
echo 'the pep8 tests with "tox -e pep8".' | ||
echo "Note: with no options specified, the script will try to run the tests in a virtual environment," | ||
echo " If no virtualenv is found, the script will ask if you would like to create one. If you " | ||
echo " prefer to run tests NOT in a virtual environment, simply pass the -N option." | ||
exit | ||
} | ||
|
||
command -v tox > /dev/null 2>&1 | ||
if [ $? -ne 0 ]; then | ||
echo 'This script requires "tox" to run.' | ||
echo 'You can install it with "pip install tox".' | ||
exit 1; | ||
fi | ||
|
||
just_pep8=0 | ||
|
||
function process_option { | ||
case "$1" in | ||
-h|--help) usage;; | ||
-p|--pep8) let just_pep8=1;; | ||
-V|--virtual-env) always_venv=1; never_venv=0;; | ||
-N|--no-virtual-env) always_venv=0; never_venv=1;; | ||
-s|--no-site-packages) no_site_packages=1;; | ||
-f|--force) force=1;; | ||
-p|--pep8) just_pep8=1;; | ||
-P|--no-pep8) no_pep8=1;; | ||
-c|--coverage) coverage=1;; | ||
-*) noseopts="$noseopts $1";; | ||
*) noseargs="$noseargs $1" | ||
esac | ||
} | ||
|
||
venv=.venv | ||
with_venv=tools/with_venv.sh | ||
always_venv=0 | ||
never_venv=0 | ||
force=0 | ||
no_site_packages=0 | ||
installvenvopts= | ||
noseargs= | ||
noseopts= | ||
wrapper="" | ||
just_pep8=0 | ||
no_pep8=0 | ||
coverage=0 | ||
|
||
for arg in "$@"; do | ||
process_option $arg | ||
done | ||
|
||
# If enabled, tell nose to collect coverage data | ||
if [ $coverage -eq 1 ]; then | ||
noseopts="$noseopts --with-coverage --cover-package=openstackclient" | ||
fi | ||
|
||
if [ $no_site_packages -eq 1 ]; then | ||
installvenvopts="--no-site-packages" | ||
fi | ||
|
||
function run_tests { | ||
# Just run the test suites in current environment | ||
${wrapper} $NOSETESTS | ||
# If we get some short import error right away, print the error log directly | ||
RESULT=$? | ||
return $RESULT | ||
} | ||
|
||
function run_pep8 { | ||
echo "Running pep8 ..." | ||
srcfiles="openstackclient tests" | ||
# Just run PEP8 in current environment | ||
# | ||
# NOTE(sirp): W602 (deprecated 3-arg raise) is being ignored for the | ||
# following reasons: | ||
# | ||
# 1. It's needed to preserve traceback information when re-raising | ||
# exceptions; this is needed b/c Eventlet will clear exceptions when | ||
# switching contexts. | ||
# | ||
# 2. There doesn't appear to be an alternative, "pep8-tool" compatible way of doing this | ||
# in Python 2 (in Python 3 `with_traceback` could be used). | ||
# | ||
# 3. Can find no corroborating evidence that this is deprecated in Python 2 | ||
# other than what the PEP8 tool claims. It is deprecated in Python 3, so, | ||
# perhaps the mistake was thinking that the deprecation applied to Python 2 | ||
# as well. | ||
pep8_opts="--ignore=E202,W602 --repeat" | ||
${wrapper} pep8 ${pep8_opts} ${srcfiles} | ||
} | ||
|
||
NOSETESTS="nosetests $noseopts $noseargs" | ||
|
||
if [ $never_venv -eq 0 ] | ||
then | ||
# Remove the virtual environment if --force used | ||
if [ $force -eq 1 ]; then | ||
echo "Cleaning virtualenv..." | ||
rm -rf ${venv} | ||
fi | ||
if [ -e ${venv} ]; then | ||
wrapper="${with_venv}" | ||
else | ||
if [ $always_venv -eq 1 ]; then | ||
# Automatically install the virtualenv | ||
python tools/install_venv.py $installvenvopts | ||
wrapper="${with_venv}" | ||
else | ||
echo -e "No virtual environment found...create one? (Y/n) \c" | ||
read use_ve | ||
if [ "x$use_ve" = "xY" -o "x$use_ve" = "x" -o "x$use_ve" = "xy" ]; then | ||
# Install the virtualenv and run the test suite in it | ||
python tools/install_venv.py $installvenvopts | ||
wrapper=${with_venv} | ||
fi | ||
fi | ||
fi | ||
fi | ||
|
||
# Delete old coverage data from previous runs | ||
if [ $coverage -eq 1 ]; then | ||
${wrapper} coverage erase | ||
fi | ||
|
||
if [ $just_pep8 -eq 1 ]; then | ||
tox -e pep8 | ||
exit | ||
run_pep8 | ||
exit | ||
fi | ||
|
||
tox -e py27 $toxargs 2>&1 | tee run_tests.err.log || exit | ||
if [ ${PIPESTATUS[0]} -ne 0 ]; then | ||
exit ${PIPESTATUS[0]} | ||
run_tests | ||
|
||
# NOTE(sirp): we only want to run pep8 when we're running the full-test suite, | ||
# not when we're running tests individually. To handle this, we need to | ||
# distinguish between options (noseopts), which begin with a '-', and | ||
# arguments (noseargs). | ||
if [ -z "$noseargs" ]; then | ||
if [ $no_pep8 -eq 0 ]; then | ||
run_pep8 | ||
fi | ||
fi | ||
|
||
if [ -z "$toxargs" ]; then | ||
tox -e pep8 | ||
if [ $coverage -eq 1 ]; then | ||
echo "Generating coverage report in covhtml/" | ||
${wrapper} coverage html -d covhtml -i | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.