Remove deprecated test runner wrappers (.sh files)
This patch removes run_tempest.sh, run_tests.sh, tools/pretty_tox.sh tools/pretty_tox_serial.sh. They all have been deprecated between 7 and 9 months ago. As stated in the deprecation warnings, the way forward is with os-testr, testr or stestr. Change-Id: I35b6f8158f702594ed81ec2211d754395cfab937
This commit is contained in:
parent
2c3f1a794b
commit
27ca251dab
|
@ -263,9 +263,7 @@ To run one single test serially ::
|
||||||
|
|
||||||
$ testr run tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_reboot_non_existent_server
|
$ testr run tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_reboot_non_existent_server
|
||||||
|
|
||||||
Alternatively, you can use the run_tempest.sh script which will create a venv
|
Tox also contains several existing job configurations. For example::
|
||||||
and run the tests or use tox to do the same. Tox also contains several existing
|
|
||||||
job configurations. For example::
|
|
||||||
|
|
||||||
$ tox -efull
|
$ tox -efull
|
||||||
|
|
||||||
|
|
135
run_tempest.sh
135
run_tempest.sh
|
@ -1,135 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
echo "WARNING: This script is deprecated and will be removed in the near future. Please migrate to tempest run or another method of launching a test runner"
|
|
||||||
|
|
||||||
function usage {
|
|
||||||
echo "Usage: $0 [OPTION]..."
|
|
||||||
echo "Run Tempest 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 " -n, --no-site-packages Isolate the virtualenv from the global Python environment"
|
|
||||||
echo " -f, --force Force a clean re-build of the virtual environment. Useful when dependencies have been added."
|
|
||||||
echo " -u, --update Update the virtual environment with any newer package versions"
|
|
||||||
echo " -s, --smoke Only run smoke tests"
|
|
||||||
echo " -t, --serial Run testr serially"
|
|
||||||
echo " -C, --config Config file location"
|
|
||||||
echo " -h, --help Print this usage message"
|
|
||||||
echo " -d, --debug Run tests with testtools instead of testr. This allows you to use PDB"
|
|
||||||
echo " -- [TESTROPTIONS] After the first '--' you can pass arbitrary arguments to testr "
|
|
||||||
}
|
|
||||||
|
|
||||||
testrargs=""
|
|
||||||
venv=${VENV:-.venv}
|
|
||||||
with_venv=tools/with_venv.sh
|
|
||||||
serial=0
|
|
||||||
always_venv=0
|
|
||||||
never_venv=0
|
|
||||||
no_site_packages=0
|
|
||||||
debug=0
|
|
||||||
force=0
|
|
||||||
wrapper=""
|
|
||||||
config_file=""
|
|
||||||
update=0
|
|
||||||
|
|
||||||
if ! options=$(getopt -o VNnfusthdC:lL: -l virtual-env,no-virtual-env,no-site-packages,force,update,smoke,serial,help,debug,config: -- "$@")
|
|
||||||
then
|
|
||||||
# parse error
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
eval set -- $options
|
|
||||||
first_uu=yes
|
|
||||||
while [ $# -gt 0 ]; do
|
|
||||||
case "$1" in
|
|
||||||
-h|--help) usage; exit;;
|
|
||||||
-V|--virtual-env) always_venv=1; never_venv=0;;
|
|
||||||
-N|--no-virtual-env) always_venv=0; never_venv=1;;
|
|
||||||
-n|--no-site-packages) no_site_packages=1;;
|
|
||||||
-f|--force) force=1;;
|
|
||||||
-u|--update) update=1;;
|
|
||||||
-d|--debug) debug=1;;
|
|
||||||
-C|--config) config_file=$2; shift;;
|
|
||||||
-s|--smoke) testrargs+="smoke";;
|
|
||||||
-t|--serial) serial=1;;
|
|
||||||
--) [ "yes" == "$first_uu" ] || testrargs="$testrargs $1"; first_uu=no ;;
|
|
||||||
*) testrargs="$testrargs $1";;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -n "$config_file" ]; then
|
|
||||||
config_file=`readlink -f "$config_file"`
|
|
||||||
export TEMPEST_CONFIG_DIR=`dirname "$config_file"`
|
|
||||||
export TEMPEST_CONFIG=`basename "$config_file"`
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd `dirname "$0"`
|
|
||||||
|
|
||||||
if [ $no_site_packages -eq 1 ]; then
|
|
||||||
installvenvopts="--no-site-packages"
|
|
||||||
fi
|
|
||||||
|
|
||||||
function testr_init {
|
|
||||||
if [ ! -d .testrepository ]; then
|
|
||||||
${wrapper} testr init
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function run_tests {
|
|
||||||
testr_init
|
|
||||||
${wrapper} find . -type f -name "*.pyc" -delete
|
|
||||||
export OS_TEST_PATH=./tempest/test_discover
|
|
||||||
if [ $debug -eq 1 ]; then
|
|
||||||
if [ "$testrargs" = "" ]; then
|
|
||||||
testrargs="discover ./tempest/test_discover"
|
|
||||||
fi
|
|
||||||
${wrapper} python -m testtools.run $testrargs
|
|
||||||
return $?
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $serial -eq 1 ]; then
|
|
||||||
${wrapper} testr run --subunit $testrargs | ${wrapper} subunit-trace -n -f
|
|
||||||
else
|
|
||||||
${wrapper} testr run --parallel --subunit $testrargs | ${wrapper} subunit-trace -n -f
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
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 [ $update -eq 1 ]; then
|
|
||||||
echo "Updating virtualenv..."
|
|
||||||
virtualenv $installvenvopts $venv
|
|
||||||
$venv/bin/pip install -U -r requirements.txt
|
|
||||||
fi
|
|
||||||
if [ -e ${venv} ]; then
|
|
||||||
wrapper="${with_venv}"
|
|
||||||
else
|
|
||||||
if [ $always_venv -eq 1 ]; then
|
|
||||||
# Automatically install the virtualenv
|
|
||||||
virtualenv $installvenvopts $venv
|
|
||||||
wrapper="${with_venv}"
|
|
||||||
${wrapper} pip install -U -r requirements.txt
|
|
||||||
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
|
|
||||||
virtualenv $installvenvopts $venv
|
|
||||||
wrapper=${with_venv}
|
|
||||||
${wrapper} pip install -U -r requirements.txt
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
run_tests
|
|
||||||
retval=$?
|
|
||||||
|
|
||||||
exit $retval
|
|
193
run_tests.sh
193
run_tests.sh
|
@ -1,193 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
function usage {
|
|
||||||
echo "Usage: $0 [OPTION]..."
|
|
||||||
echo "Run Tempest unit tests"
|
|
||||||
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 " -n, --no-site-packages Isolate the virtualenv from the global Python environment"
|
|
||||||
echo " -f, --force Force a clean re-build of the virtual environment. Useful when dependencies have been added."
|
|
||||||
echo " -u, --update Update the virtual environment with any newer package versions"
|
|
||||||
echo " -t, --serial Run testr serially"
|
|
||||||
echo " -p, --pep8 Just run pep8"
|
|
||||||
echo " -c, --coverage Generate coverage report"
|
|
||||||
echo " -h, --help Print this usage message"
|
|
||||||
echo " -d, --debug Run tests with testtools instead of testr. This allows you to use PDB"
|
|
||||||
echo " -- [TESTROPTIONS] After the first '--' you can pass arbitrary arguments to testr "
|
|
||||||
}
|
|
||||||
|
|
||||||
function deprecation_warning {
|
|
||||||
cat <<EOF
|
|
||||||
-------------------------------------------------------------------------
|
|
||||||
WARNING: run_tests.sh is deprecated and this script will be removed after
|
|
||||||
the Newton release. All tests should be run through testr/ostestr or tox.
|
|
||||||
|
|
||||||
To run style checks:
|
|
||||||
|
|
||||||
tox -e pep8
|
|
||||||
|
|
||||||
To run python 2.7 unit tests
|
|
||||||
|
|
||||||
tox -e py27
|
|
||||||
|
|
||||||
To run unit tests and generate coverage report
|
|
||||||
|
|
||||||
tox -e cover
|
|
||||||
|
|
||||||
To run a subset of any of these tests:
|
|
||||||
|
|
||||||
tox -e py27 someregex
|
|
||||||
|
|
||||||
i.e.: tox -e py27 test_servers
|
|
||||||
|
|
||||||
Additional tox targets are available in tox.ini. For more information
|
|
||||||
see:
|
|
||||||
http://docs.openstack.org/project-team-guide/project-setup/python.html
|
|
||||||
|
|
||||||
NOTE: if you want to use testr to run tests, you can instead use:
|
|
||||||
|
|
||||||
OS_TEST_PATH=./tempest/tests testr run
|
|
||||||
|
|
||||||
Documentation on using testr directly can be found at
|
|
||||||
http://testrepository.readthedocs.org/en/latest/MANUAL.html
|
|
||||||
-------------------------------------------------------------------------
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
testrargs=""
|
|
||||||
just_pep8=0
|
|
||||||
venv=${VENV:-.venv}
|
|
||||||
with_venv=tools/with_venv.sh
|
|
||||||
serial=0
|
|
||||||
always_venv=0
|
|
||||||
never_venv=0
|
|
||||||
no_site_packages=0
|
|
||||||
debug=0
|
|
||||||
force=0
|
|
||||||
coverage=0
|
|
||||||
wrapper=""
|
|
||||||
config_file=""
|
|
||||||
update=0
|
|
||||||
|
|
||||||
deprecation_warning
|
|
||||||
|
|
||||||
if ! options=$(getopt -o VNnfuctphd -l virtual-env,no-virtual-env,no-site-packages,force,update,serial,coverage,pep8,help,debug -- "$@")
|
|
||||||
then
|
|
||||||
# parse error
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
eval set -- $options
|
|
||||||
first_uu=yes
|
|
||||||
while [ $# -gt 0 ]; do
|
|
||||||
case "$1" in
|
|
||||||
-h|--help) usage; exit;;
|
|
||||||
-V|--virtual-env) always_venv=1; never_venv=0;;
|
|
||||||
-N|--no-virtual-env) always_venv=0; never_venv=1;;
|
|
||||||
-n|--no-site-packages) no_site_packages=1;;
|
|
||||||
-f|--force) force=1;;
|
|
||||||
-u|--update) update=1;;
|
|
||||||
-d|--debug) debug=1;;
|
|
||||||
-p|--pep8) let just_pep8=1;;
|
|
||||||
-c|--coverage) coverage=1;;
|
|
||||||
-t|--serial) serial=1;;
|
|
||||||
--) [ "yes" == "$first_uu" ] || testrargs="$testrargs $1"; first_uu=no ;;
|
|
||||||
*) testrargs="$testrargs $1";;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
cd `dirname "$0"`
|
|
||||||
|
|
||||||
if [ $no_site_packages -eq 1 ]; then
|
|
||||||
installvenvopts="--no-site-packages"
|
|
||||||
fi
|
|
||||||
|
|
||||||
function testr_init {
|
|
||||||
if [ ! -d .testrepository ]; then
|
|
||||||
${wrapper} testr init
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function run_tests {
|
|
||||||
testr_init
|
|
||||||
${wrapper} find . -type f -name "*.pyc" -delete
|
|
||||||
export OS_TEST_PATH=./tempest/tests
|
|
||||||
if [ $debug -eq 1 ]; then
|
|
||||||
if [ "$testrargs" = "" ]; then
|
|
||||||
testrargs="discover ./tempest/tests"
|
|
||||||
fi
|
|
||||||
${wrapper} python -m testtools.run $testrargs
|
|
||||||
return $?
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $coverage -eq 1 ]; then
|
|
||||||
${wrapper} python setup.py test --coverage
|
|
||||||
return $?
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $serial -eq 1 ]; then
|
|
||||||
${wrapper} testr run --subunit $testrargs | ${wrapper} subunit-trace -n -f
|
|
||||||
else
|
|
||||||
${wrapper} testr run --parallel --subunit $testrargs | ${wrapper} subunit-trace -n -f
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function run_pep8 {
|
|
||||||
echo "Running flake8 ..."
|
|
||||||
if [ $never_venv -eq 1 ]; then
|
|
||||||
echo "**WARNING**:" >&2
|
|
||||||
echo "Running flake8 without virtual env may miss OpenStack HACKING detection" >&2
|
|
||||||
fi
|
|
||||||
${wrapper} flake8
|
|
||||||
}
|
|
||||||
|
|
||||||
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 [ $update -eq 1 ]; then
|
|
||||||
echo "Updating virtualenv..."
|
|
||||||
virtualenv $installvenvopts $venv
|
|
||||||
$venv/bin/pip install -U -r requirements.txt -r test-requirements.txt
|
|
||||||
fi
|
|
||||||
if [ -e ${venv} ]; then
|
|
||||||
wrapper="${with_venv}"
|
|
||||||
else
|
|
||||||
if [ $always_venv -eq 1 ]; then
|
|
||||||
# Automatically install the virtualenv
|
|
||||||
virtualenv $installvenvopts $venv
|
|
||||||
wrapper="${with_venv}"
|
|
||||||
${wrapper} pip install -U -r requirements.txt -r test-requirements.txt
|
|
||||||
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
|
|
||||||
virtualenv $installvenvopts $venv
|
|
||||||
wrapper=${with_venv}
|
|
||||||
${wrapper} pip install -U -r requirements.txt -r test-requirements.txt
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $just_pep8 -eq 1 ]; then
|
|
||||||
run_pep8
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
run_tests
|
|
||||||
retval=$?
|
|
||||||
|
|
||||||
if [ -z "$testrargs" ]; then
|
|
||||||
run_pep8
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit $retval
|
|
|
@ -1,88 +0,0 @@
|
||||||
# Copyright 2013 IBM Corp.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
import os
|
|
||||||
import shutil
|
|
||||||
import subprocess
|
|
||||||
import tempfile
|
|
||||||
|
|
||||||
import six
|
|
||||||
|
|
||||||
from tempest.tests import base
|
|
||||||
|
|
||||||
DEVNULL = open(os.devnull, 'wb')
|
|
||||||
|
|
||||||
|
|
||||||
class TestWrappers(base.TestCase):
|
|
||||||
def setUp(self):
|
|
||||||
super(TestWrappers, self).setUp()
|
|
||||||
# Setup test dirs
|
|
||||||
self.directory = tempfile.mkdtemp(prefix='tempest-unit')
|
|
||||||
self.addCleanup(shutil.rmtree, self.directory)
|
|
||||||
self.test_dir = os.path.join(self.directory, 'tests')
|
|
||||||
os.mkdir(self.test_dir)
|
|
||||||
# Setup Test files
|
|
||||||
self.testr_conf_file = os.path.join(self.directory, '.testr.conf')
|
|
||||||
self.setup_cfg_file = os.path.join(self.directory, 'setup.cfg')
|
|
||||||
self.passing_file = os.path.join(self.test_dir, 'test_passing.py')
|
|
||||||
self.failing_file = os.path.join(self.test_dir, 'test_failing.py')
|
|
||||||
self.init_file = os.path.join(self.test_dir, '__init__.py')
|
|
||||||
self.setup_py = os.path.join(self.directory, 'setup.py')
|
|
||||||
shutil.copy('tempest/tests/files/testr-conf', self.testr_conf_file)
|
|
||||||
shutil.copy('tempest/tests/files/passing-tests', self.passing_file)
|
|
||||||
shutil.copy('tempest/tests/files/failing-tests', self.failing_file)
|
|
||||||
shutil.copy('setup.py', self.setup_py)
|
|
||||||
shutil.copy('tempest/tests/files/setup.cfg', self.setup_cfg_file)
|
|
||||||
shutil.copy('tempest/tests/files/__init__.py', self.init_file)
|
|
||||||
# copy over the pretty_tox scripts
|
|
||||||
shutil.copy('tools/pretty_tox.sh',
|
|
||||||
os.path.join(self.directory, 'pretty_tox.sh'))
|
|
||||||
shutil.copy('tools/pretty_tox_serial.sh',
|
|
||||||
os.path.join(self.directory, 'pretty_tox_serial.sh'))
|
|
||||||
|
|
||||||
self.stdout = six.StringIO()
|
|
||||||
self.stderr = six.StringIO()
|
|
||||||
# Change directory, run wrapper and check result
|
|
||||||
self.addCleanup(os.chdir, os.path.abspath(os.curdir))
|
|
||||||
os.chdir(self.directory)
|
|
||||||
|
|
||||||
def assertRunExit(self, cmd, expected):
|
|
||||||
p = subprocess.Popen(
|
|
||||||
"bash %s" % cmd, shell=True,
|
|
||||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
||||||
out, err = p.communicate()
|
|
||||||
|
|
||||||
self.assertEqual(
|
|
||||||
p.returncode, expected,
|
|
||||||
"Stdout: %s; Stderr: %s" % (out, err))
|
|
||||||
|
|
||||||
def test_pretty_tox(self):
|
|
||||||
# Git init is required for the pbr testr command. pbr requires a git
|
|
||||||
# version or an sdist to work. so make the test directory a git repo
|
|
||||||
# too.
|
|
||||||
subprocess.call(['git', 'init'], stderr=DEVNULL)
|
|
||||||
self.assertRunExit('pretty_tox.sh passing', 0)
|
|
||||||
|
|
||||||
def test_pretty_tox_fails(self):
|
|
||||||
# Git init is required for the pbr testr command. pbr requires a git
|
|
||||||
# version or an sdist to work. so make the test directory a git repo
|
|
||||||
# too.
|
|
||||||
subprocess.call(['git', 'init'], stderr=DEVNULL)
|
|
||||||
self.assertRunExit('pretty_tox.sh', 1)
|
|
||||||
|
|
||||||
def test_pretty_tox_serial(self):
|
|
||||||
self.assertRunExit('pretty_tox_serial.sh passing', 0)
|
|
||||||
|
|
||||||
def test_pretty_tox_serial_fails(self):
|
|
||||||
self.assertRunExit('pretty_tox_serial.sh', 1)
|
|
|
@ -1,14 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
echo "WARNING: This script is deprecated and will be removed in the near future. Please migrate to tempest run or another method of launching a test runner"
|
|
||||||
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
TESTRARGS=$1
|
|
||||||
python setup.py testr --testr-args="--subunit $TESTRARGS" | subunit-trace --no-failure-debug -f
|
|
||||||
retval=$?
|
|
||||||
# NOTE(mtreinish) The pipe above would eat the slowest display from pbr's testr
|
|
||||||
# wrapper so just manually print the slowest tests.
|
|
||||||
echo -e "\nSlowest Tests:\n"
|
|
||||||
testr slowest
|
|
||||||
exit $retval
|
|
|
@ -1,16 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
echo "WARNING: This script is deprecated and will be removed in the near future. Please migrate to tempest run or another method of launching a test runner"
|
|
||||||
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
TESTRARGS=$@
|
|
||||||
|
|
||||||
if [ ! -d .testrepository ]; then
|
|
||||||
testr init
|
|
||||||
fi
|
|
||||||
testr run --subunit $TESTRARGS | subunit-trace -f -n
|
|
||||||
retval=$?
|
|
||||||
testr slowest
|
|
||||||
|
|
||||||
exit $retval
|
|
Loading…
Reference in New Issue