Pete Vander Giessen 725e299308 Fixes for snapcraft 3.9.x
Added build-environment to qemu (works around issue where patchelf was
not finding libs).

Added hack to force wrapping of all non bash apps, to work around
snapd issue with multiple instances of PATH in the snap environment.

Also snuck in fix for horizon build. Horizon is specified in upstream
constraints now, which means that our build fails if we try to build
it from source in the same part that looks at the constriants file.

Misc fixes to make the tests nicer.

Change-Id: I50c88878c4f9dbb07006cab899a717e334be07d0
2020-01-29 14:49:03 +00:00

112 lines
2.7 KiB
INI

[tox]
envlist = lint, unit, multipass
skipsdist = True
[testenv]
basepython=python3
install_command = pip install {opts} {packages}
deps = -r{toxinidir}/test-requirements.txt
setenv =
PATH = /snap/bin:{env:PATH}
passenv = HOME TERM DISTRO INTERACTIVE_DEBUG
whitelist_externals =
sudo
/snap/bin/snapcraft
commands =
{toxinidir}/tools/basic_setup.sh
flake8 {toxinidir}/tests/
{toxinidir}/tests/test_basic.py
[testenv:snap]
# Testing environment for the gerrit gate. Named 'snap' to conform to
# the requirements of the snap friendly job that we inherit from in
# .zuul.yaml.
commands =
{toxinidir}/tools/lxd_build.sh
flake8 {toxinidir}/tests/
# Specify tests in sequence, as they can't run in parallel if not
# using multipass.
{toxinidir}/tests/test_basic.py
[testenv:multipass]
# Default testing environment for a human operated machine. Builds the
# snap in a multipass instance, then runs tests in a separate multipass
# instance. This makes the fewest changes to your personal computer,
# but is heavier on system requirements. For a more lightweight test,
# use the "snap" environment above. Beware that you will wind up with
# a lot of things installed, including potentially the locally built
# version of MicroStack!
setenv =
MULTIPASS=true
commands =
{toxinidir}/tools/multipass_build.sh
flake8 {toxinidir}/tests/
{toxinidir}/tests/test_basic.py
[testenv:basic]
# Run basic tests, with default distro.
setenv =
MULTIPASS=true
[testenv:refresh]
# Verify that we can refresh MicroStack
setenv =
MULTIPASS=true
commands =
{toxinidir}/tools/basic_setup.sh
flake8 {toxinidir}/tests/
{toxinidir}/tests/test_refresh.py
[testenv:xenial]
# Run basic tests, under xenial.
setenv =
MULTIPASS=true
DISTRO=xenial
[testenv:disco]
# Run basic tests, under disco.
setenv =
MULTIPASS=true
DISTRO=disco
[testenv:eoan]
# Run basic tests, under eoan.
setenv =
MULTIPASS=true
DISTRO=eoan
[testenv:cluster]
# Test out clustering!
# Requires multipass.
setenv =
MULTIPASS=true
commands =
{toxinidir}/tools/basic_setup.sh
flake8 {toxinidir}/tests/
{toxinidir}/tests/test_cluster.py
[testenv:build]
# Just build the snap, using multipass.
setenv =
MULTIPASS=true
commands =
{toxinidir}/tools/multipass_build.sh
[testenv:lint]
commands =
flake8 {toxinidir}/tests/
flake8 {toxinidir}/tools/
flake8 {toxinidir}/tools/init/init/
flake8 {toxinidir}/tools/launch/launch/
flake8 {toxinidir}/tools/cluster/cluster/
[testenv:unit]
deps = -r{toxinidir}/tools/init/test-requirements.txt
-r{toxinidir}/tools/init/requirements.txt
commands =
stestr run --top-dir=./tools/init/ --test-path=./tools/init/tests/ {posargs}