ci: tests: move away from tox, just use pytest directly
What changed, and why it matters
This commit is a routine cleanup of the project's automated testing setup. It removes the 'tox' tool and runs tests directly with pytest. There is no change to the Electrum wallet application itself, no bug fix, and no security-related change.
No security action needed. This is an infrastructure-only change.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit modifies CI configuration only: .cirrus.yml is updated to invoke pytest directly instead of tox, requirements-ci.txt swaps tox for pytest and coverage, and tox.ini is deleted. The actual test command and coverage configuration are preserved verbatim. No application code is changed.
Changed components
CI configuration (.cirrus.yml)CI dependency manifest (contrib/requirements/requirements-ci.txt)Removed tox.iniInspect captured patch +26 / −37
diff --git a/.cirrus.yml b/.cirrus.yml
index 800a5b9..a70cada 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -4,10 +4,9 @@ task:
cpu: 1
memory: 2G
matrix:
- - name: "unittests: Tox Python $ELECTRUM_PYTHON_VERSION"
+ - name: "unittests: python $ELECTRUM_PYTHON_VERSION"
env:
ELECTRUM_IMAGE: python:$ELECTRUM_PYTHON_VERSION
- TOXENV: py3
ELECTRUM_PYTHON_NAME: python3
matrix:
- env:
@@ -18,7 +17,7 @@ task:
ELECTRUM_PYTHON_VERSION: 3.12
- env:
ELECTRUM_PYTHON_VERSION: 3.13
- - name: "unittests: Tox Python 3 debug mode"
+ - name: "unittests: python 3 debug mode"
env:
ELECTRUM_PYTHON_VERSION: 3.13
# enable additional checks:
@@ -27,28 +26,34 @@ task:
pip_cache:
folder: ~/.cache/pip
fingerprint_script: echo $ELECTRUM_IMAGE && cat $ELECTRUM_REQUIREMENTS_CI && cat $ELECTRUM_REQUIREMENTS
- version_script:
- - $ELECTRUM_PYTHON_NAME --version
tag_script:
- git tag
- install_script:
- - apt-get update
- # qml test reqs:
- - apt-get -y install libgl1 libegl1 libxkbcommon0 libdbus-1-3
- - pip install -r $ELECTRUM_REQUIREMENTS_CI
libsecp_build_cache:
folder: contrib/_saved_secp256k1_build
fingerprint_script: sha256sum ./contrib/make_libsecp256k1.sh
populate_script:
+ - apt-get update
- apt-get -y install automake libtool
- ./contrib/make_libsecp256k1.sh
- mkdir contrib/_saved_secp256k1_build
- cp electrum/libsecp256k1.so.* contrib/_saved_secp256k1_build/
- tox_script:
- - export PYTHONASYNCIODEBUG
- - export PYTHONDEVMODE
+ install_script:
+ - apt-get update
+ # qml test reqs:
+ - apt-get -y install libgl1 libegl1 libxkbcommon0 libdbus-1-3
+ - pip install -r $ELECTRUM_REQUIREMENTS_CI
+ # electrum itself:
- export ELECTRUM_ECC_DONT_COMPILE=1
- - tox
+ - pip install ".[tests,qml_gui]"
+ version_script:
+ - $ELECTRUM_PYTHON_NAME --version
+ - pip freeze --all
+ pytest_script:
+ - >
+ coverage run --source=electrum \
+ "--omit=electrum/gui/*,electrum/plugins/*,electrum/scripts/*" \
+ -m pytest tests -v
+ - coverage report
coveralls_script:
- if [ ! -z "$COVERALLS_REPO_TOKEN" ] ; then coveralls ; fi
env:
@@ -89,7 +94,7 @@ task:
ELECTRUM_REQUIREMENTS_CI: contrib/requirements/requirements-ci.txt
# in addition, crowdin_api_key is set as an "override" in https://cirrus-ci.com/settings/...
depends_on:
- - "unittests: Tox Python 3.10"
+ - "unittests: python 3.10"
only_if: $CIRRUS_BRANCH == 'master'
task:
@@ -222,7 +227,7 @@ task:
CIRRUS_WORKING_DIR: /opt/wine64/drive_c/electrum
CIRRUS_DOCKER_CONTEXT: contrib/build-wine
depends_on:
- - "unittests: Tox Python 3.10"
+ - "unittests: python 3.10"
task:
name: "build: Android (QML $APK_ARCH)"
@@ -256,7 +261,7 @@ task:
binaries_artifacts:
path: "dist/*"
depends_on:
- - "unittests: Tox Python 3.10"
+ - "unittests: python 3.10"
## mac build disabled, as Cirrus CI no longer supports Intel-based mac builds
#task:
@@ -319,7 +324,7 @@ task:
env:
CIRRUS_DOCKER_CONTEXT: contrib/build-linux/appimage
depends_on:
- - "unittests: Tox Python 3.10"
+ - "unittests: python 3.10"
task:
container:
@@ -342,7 +347,7 @@ task:
env:
OMIT_UNCLEAN_FILES: 1
depends_on:
- - "unittests: Tox Python 3.10"
+ - "unittests: python 3.10"
task:
name: "check submodules"
diff --git a/contrib/requirements/requirements-ci.txt b/contrib/requirements/requirements-ci.txt
index 47cd6ac..d9644b5 100644
--- a/contrib/requirements/requirements-ci.txt
+++ b/contrib/requirements/requirements-ci.txt
@@ -1,2 +1,3 @@
-tox
+pytest
+coverage
coveralls
diff --git a/tox.ini b/tox.ini
deleted file mode 100644
index 0007b6b..0000000
--- a/tox.ini
+++ /dev/null
@@ -1,17 +0,0 @@
-[tox]
-
-[testenv]
-deps=
- pytest
- coverage
-passenv=
- PYTHONASYNCIODEBUG
- PYTHONDEVMODE
-commands=
- coverage run --source=electrum \
- '--omit=electrum/gui/*,electrum/plugins/*,electrum/scripts/*' \
- -m pytest tests -v
- coverage report
-extras=
- tests
- qml_gui
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.