Pytest-xdist-kubernetes
The pytest-xdist-plugin extends pytest-xdist with new kubernetes pod communication. It is capable of creating Kubernetes deployment using the given namespace and docker image, run tests from pods, and display the result at the end from the terminal.
How to Install
In order to use the plugin, >= Python 3.9 is required. Can be installed with the following command:
pip install pxk
How to Use
By giving --tx='pod' as part of the xdist command, it triggers Pytest-xdist-kubernetes plugin.
pytest {test files to run} -n {number of pods per deployment} --tx='pod'
On top of the existing pytest-xdist library, various options have been added to support running tests from kubernetes pods remotely.
pytest --namespace='{custom namspace}' --custom_image='{custom image}' {test files to run} -n {number of pods per deployment} --tx='pod'
When there are multiple images, multiple deployments get created and each deployment will contain its own image. The plugin will then try its best to evenly distribute the workers as much as possible. If the number of workers is less than the number of custom images, an exception would occur. Multiple custom images can be provided through the command without spaces in between images:
pytest --namespace='{custom namspace}' --custom_image='{custom image1,custom image2}' {test files to run} -n {number of pods per deployment} --tx='pod'
Logger is included as part of the functions added by the plugin. You can check the progress of the plugin by specifying:
--log-cli-level INFO
Since the plugin relies on xdist library's task scheduler for distributing tasks, you can specify how you would like to distribute tasks across multiple pods. By default, it evenly distributes test files.
But if you would like each pod to run all the specified test files:
pytest {testfiles to run} -n {number of pods per deployment} --tx='pod' --dist=each
All the testfiles must be from the same folder.
The plugin may have issues in Windows OS.
Reference
The plugin uses Kubernetes API to create/delete kubernetes deployments.
https://github.com/kubernetes-client/python/blob/master/kubernetes/README.md
Metadata
Release files for pxk 0.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pxk-0.0.4.tar.gz | 9.0 kB | Without provenance | Details for pxk-0.0.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pxk-0.0.4-py3-none-any.whl | Python 3 | none | any | Details for pxk-0.0.4-py3-none-any.whl |
Total release size: 19.0 kB
Release files / pxk-0.0.4.tar.gz
| Download URL | pxk-0.0.4.tar.gz |
|---|---|
| Size | 9.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
889592a70bd7e0c81ef0b8ca6f6254a80b9095f281d0d4bf7948a13b1b348e5f
|
|
BLAKE2b-256 checksum How to use checksums |
89e8735c3241afbd030b60b49a814cf04bdb1db6a99612ff729f642510a145e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.7.1 CPython/3.12.1 Darwin/23.3.0
|
Release files / pxk-0.0.4-py3-none-any.whl
| Download URL | pxk-0.0.4-py3-none-any.whl |
|---|---|
| Size | 10.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6862ce6d04a03069217d67b86ef3ae2a9761d537282c9ed0bf3aff46e9f186c3
|
|
BLAKE2b-256 checksum How to use checksums |
41dc49c723f6a06278a2821afc5bf7356d2c2d7e1d3ad500a3643e6dcba19a93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.7.1 CPython/3.12.1 Darwin/23.3.0
|
Security for pxk 0.0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.