
Refactored test framework so that we have more flexibility in terms of installing various versions of microstack before and after running some tests. Moved in class "globals" into per instance variables, to avoid broken cases with incomplete cleanup. Added test_refresh.py, plus matching env in tox. Refresh tests will fail currently, because we have some pending issues that break refreshes. Fixing those is a subject for a different commit. Refactored cluster_test.py and control_test.py to use new framework. Should (and do) pass. Framework now cleans up multipass hosts regardless of whether or not the tests passed. Leaning on the .tar.gz for local troubleshooting helps us make it better for in gate troubleshooting. Change-Id: I6a45b39132f5959c2944fe1ebbe10f71408ee777
112 lines
2.7 KiB
INI
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
|
|
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}
|