aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArif Ali <arif.ali@canonical.com>2024-04-24 09:49:50 +0100
committerJake Hunsaker <jacob.r.hunsaker@gmail.com>2024-04-26 15:23:34 -0400
commitd60a68bdb40e010077d19956d1536526902bd20d (patch)
tree0962f0b525d370d81f5b1fd508e5aaf7ee569af7
parent7f11033c6eb5a2fe7244f0b9d471685909c0ec89 (diff)
downloadsos-d60a68bdb40e010077d19956d1536526902bd20d.tar.gz
[tox] Use posargs for the tests
This allows to run specific tests, and not all the tests in one go. This is especially useful if you're writing a plugin or creating a test for a specific scenario. Below an example of what would be possible ``` sudo tox -e stagetwo_tests -- tests/report_tests/plugin_tests/openstack/openstack.py ``` This will run stagetwo tests for the specific test, i.e. openstack in this case This also fixes the stagetwo tests, so that it picks up the systemd python libs from the distro environment Update the installation of avocado-framework from one place, so that we don't need to change the version in many places. Adding `test-requirements.txt` to handle this and integrate this with both tox and Cirrus CI Signed-off-by: Arif Ali <arif.ali@canonical.com>
-rw-r--r--.cirrus.yml4
-rw-r--r--test-requirements.txt1
-rw-r--r--tox.ini13
3 files changed, 11 insertions, 7 deletions
diff --git a/.cirrus.yml b/.cirrus.yml
index 33c48068..0d3f9f0f 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -148,7 +148,7 @@ deb_build_task:
apt -y install devscripts equivs python3-pip
mk-build-deps
apt -y install ./sosreport-build-deps*.deb
- pip3 install "avocado-framework<104.0" --break-system-packages
+ pip3 install -r test-requirements.txt --break-system-packages
main_script: |
dpkg-buildpackage -b -us -uc -rfakeroot -m --build-by="noreply@canonical.com"
prep_artifacts_script: mv ../*.deb ./sos_cirrus.deb
@@ -240,7 +240,7 @@ report_stageone_task:
fi
PIP_EXTRA=""
[[ $(pip3 install --help | grep break-system) ]] && PIP_EXTRA="--break-system-packages"
- pip3 install "avocado-framework<104.0" ${PIP_EXTRA}
+ pip3 install -r test-requirements.txt ${PIP_EXTRA}
# run the unittests separately as they require a different PYTHONPATH in
# order for the imports to work properly under avocado
unittest_script: &unit_test |
diff --git a/test-requirements.txt b/test-requirements.txt
new file mode 100644
index 00000000..9d26206a
--- /dev/null
+++ b/test-requirements.txt
@@ -0,0 +1 @@
+avocado-framework<104.0
diff --git a/tox.ini b/tox.ini
index d7734ab6..096d795f 100644
--- a/tox.ini
+++ b/tox.ini
@@ -4,7 +4,7 @@ envlist = flake8
[testenv]
deps =
-r{toxinidir}/requirements.txt
- avocado-framework<104.0
+ -r{toxinidir}/test-requirements.txt
python_magic
setenv =
PYTHONPATH = {toxinidir}/tests
@@ -15,6 +15,8 @@ stage_tests =
tests/collect_tests \
tests/report_tests \
tests/vendor_tests
+foreman_tests =
+ tests/product_tests/foreman
[testenv:flake8]
deps = flake8
@@ -29,22 +31,23 @@ basepython = python3
setenv =
PYTHONPATH = .
commands =
- avocado run tests/unittests/
+ avocado run tests/unittests
[testenv:stageone_tests]
basepython = python3
commands =
- {[testenv]avocado_cmd} -t stageone {[testenv]stage_tests}
+ {[testenv]avocado_cmd} -t stageone {posargs:[testenv]stage_tests}
[testenv:stagetwo_tests]
basepython = python3
+sitepackages = True
commands =
- {[testenv]avocado_cmd} -t stagetwo {[testenv]stage_tests}
+ {[testenv]avocado_cmd} -t stagetwo {posargs:[testenv]stage_tests}
[testenv:foreman_tests]
basepython = python3
commands =
- {[testenv]avocado_cmd} -t foreman tests/product_tests/foreman/
+ {[testenv]avocado_cmd} -t foreman {posargs:[testenv]foreman_tests}
[testenv:nosetests]
basepython = python3