Skip to main content

Ad-hoc Test EXecutor

Project description

ATEX = Ad-hoc Test EXecutor

A collections of Python APIs to provision operating systems, collect and execute FMF-style tests, gather and organize their results and generate reports from those results.

The name comes from a (fairly unique to FMF/TMT ecosystem) approach that allows provisioning a pool of systems and scheduling tests on them as one would on an ad-hoc pool of thread/process workers - once a worker becomes free, it receives a test to run.
This is in contrast to splitting a large list of N tests onto M workers like N/M, which yields significant time penalties due to tests having very varies runtimes.

Above all, this project is meant to be a toolbox, not a silver-plate solution. Use its Python APIs to build a CLI tool for your specific use case.
The CLI tool provided here is just for demonstration / testing, not for serious use - we want to avoid huge modular CLIs for Every Possible Scenario. That's the job of the Python API. Any CLI should be simple by nature.


License

Unless specified otherwise, any content within this repository is distributed under the GNU GPLv3 license, see the COPYING.txt file for more.

Environment variables

  • ATEX_DEBUG_TEST
    • Set to 1 to print out detailed runner-related trace within the test output stream (as if it was printed out by the test).

Testing this project

There are some limited sanity tests provided via pytest, although:

  • Some require additional variables (ie. Testing Farm) and will ERROR without them.
  • Some take a long time (ie. Testing Farm) due to system provisioning taking a long time, so install pytest-xdist and run with a large -n.

Currently, the recommended approach is to split the execution:

# synchronously, because podman CLI has concurrency issues
pytest tests/provision/test_podman.py

# in parallel, because provisioning takes a long time
export TESTING_FARM_API_TOKEN=...
export TESTING_FARM_COMPOSE=...
pytest -n 20 tests/provision/test_podman.py

# fast enough for synchronous execution
pytest tests/fmf

Unsorted notes

TODO: codestyle from contest

- this is not tmt, the goal is to make a python toolbox *for* making runcontest
  style tools easily, not to replace those tools with tmt-style CLI syntax

  - the whole point is to make usecase-targeted easy-to-use tools that don't
    intimidate users with 1 KB long command line, and runcontest is a nice example

  - TL;DR - use a modular pythonic approach, not a gluetool-style long CLI

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

atex-0.16.tar.gz (94.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

atex-0.16-py3-none-any.whl (79.1 kB view details)

Uploaded Python 3

File details

Details for the file atex-0.16.tar.gz.

File metadata

  • Download URL: atex-0.16.tar.gz
  • Upload date:
  • Size: 94.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for atex-0.16.tar.gz
Algorithm Hash digest
SHA256 1333466bfced699b98253b4a4b53dfb2f3d1ff2d86e301efb5ae3efe95af6fe0
MD5 8d211e11358d28520da1bac8b86bc747
BLAKE2b-256 0cb52a9c599e6c536ef66a99bb51527b6a1d865316b85265f6106d721e212850

See more details on using hashes here.

File details

Details for the file atex-0.16-py3-none-any.whl.

File metadata

  • Download URL: atex-0.16-py3-none-any.whl
  • Upload date:
  • Size: 79.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for atex-0.16-py3-none-any.whl
Algorithm Hash digest
SHA256 6acfb7c24f0e8521b95800de00b558c06a4aa3b09a126bd4b06e13c765020606
MD5 efa1465802b1ba316fc6bbe7bac1fd3a
BLAKE2b-256 d5859c13e55c4006abc028ba837d2f91abe26046ba490e39a67bf09ac3b07408

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page