Andreas Jaeger 19e5463e63 Import integration test
Add the hacking-integration-nova test as Zuul v3 native test.

Note that the legacy tests always fails due to missing
required-projects with Zuul v3.

Fix also the following problems so that the test works:
* Give proper exit code, so that tox does not always succeed
* Import nova to avoid the error:
  "ImportError nova.hacking.checks.factory"

Change-Id: Iffaae6a3acb890051fbe4768eef9f0b82428e81c
2018-04-27 09:19:01 +00:00

59 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# Usage: test.sh openstack keystone path-to-repo
# path-to-repo is an optional parameter, if it exists
# no cloning will happen and the local directory will be used,
# the first two parameter get ignored.
# Note: you can clone from a local file with REPO_ROOT=file:////~/path/to/repo
set -x
set -e
REPO_ROOT=${REPO_ROOT:-git://git.openstack.org}
HACKING="$(pwd)"
if [[ $# -lt 2 ]] ; then
echo "Script needs at least two arguments:"
echo "$0 organization name [path-to-repo]"
exit 1
fi
org=$1
project=$2
if [[ $# -eq 3 ]] ; then
projectdir=$3
clone=0
else
projectdir=$project
clone=1
fi
if [ "$clone" = "1" ] ; then
tempdir="$(mktemp -d)"
trap "rm -rf $tempdir" EXIT
pushd $tempdir
git clone $REPO_ROOT/$org/$project --depth=1
fi
pushd $projectdir
set +e
# Install project with test-requirements so that hacking's
# local-check-factory works
pip install -r test-requirements.txt
pip install .
# Reinstall hacking, the above might have uninstalled it
pip install $HACKING
flake8 --select H --statistics
RET=$?
popd
if [ "$clone" = "1" ] ; then
popd
fi
exit $RET