Skip to content

Commit

Permalink
[tox] Use posargs for the tests
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
arif-ali authored and TurboTurtle committed Apr 26, 2024
1 parent 7f11033 commit d60a68b
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 7 deletions.
4 changes: 2 additions & 2 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 |
Expand Down
1 change: 1 addition & 0 deletions test-requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
avocado-framework<104.0
13 changes: 8 additions & 5 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down

0 comments on commit d60a68b

Please sign in to comment.