Skip to main content

canary: application testing with Python

Project description

CANARY

canary is a python package providing an application testing framework designed to test scientific applications.

canary is inspired by vvtest and designed to run tests on diverse hardware from laptops to super computing clusters. canary not only validates the functionality of your application but can also serve as a workflow manager for analysts. A "test" is an executable script with extension .pyt or .vvt. If the exit code upon executing the script is 0, the test is considered to have passed, otherwise a non-passing status will be assigned. canary's methodology is simple: given a path on the filesystem, canary recursively searches for test scripts, sets up the tests described in each script, executes them, and reports the results.

canary offers several advantages over similar testing tools:

Speed: Hierarchical parallelism is used to run tests asynchronously, optimizing resource utilization and speeding up the testing process.

Python: Test files are written in Python, giving developers access to the full Python ecosystem.

Integration: canary integrates with popular developer tools like CMake, CDash and GitLab, streamlining the testing and continuous integration (CI) processes.

Extensibility: canary can be extended through user plugins, allowing developers to customize their test sessions according to their specific needs.

Requirements

Python 3.10+

Install

canary is distributed as a python library and is most easily installed via pip (or other compatible tool):

To install the latest production version, execute:

python3 -m pip install canary-wm

To install the latest development version, execute:

python3 -m pip install "canary-wm@git+ssh://git@github.com/sandialabs/canary"

NOTE: Installing from the main development branch depends on floating git refs to one or more dependencies. For stable installs, install a published release.

Developers

For developers wanting to make modifications and/or contributions to canary, install in editable mode:

python3 -m pip install -e git+https://github.com/sandialabs/canary#egg=canary-wm[dev]

which will leave a copy of canary in your Python distribution's $prefix/src directory. Edits made to the source will be immediately visible by the Python interpreter. Alternatively, the source can be cloned and then installed in editable mode:

git clone git@github.com:sandialabs/canary
cd canary
python3 -m pip install --editable .[dev]

To format code and run canary's internal tests, execute

canary check

License

Canary is distributed under the terms of the MIT license, see LICENSE and COPYRIGHT.

SPDX-License-Identifier: MIT

SCR#:3170.0

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

canary_wm-26.3.5.tar.gz (6.5 MB view details)

Uploaded Source

Built Distribution

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

canary_wm-26.3.5-py3-none-any.whl (420.6 kB view details)

Uploaded Python 3

File details

Details for the file canary_wm-26.3.5.tar.gz.

File metadata

  • Download URL: canary_wm-26.3.5.tar.gz
  • Upload date:
  • Size: 6.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for canary_wm-26.3.5.tar.gz
Algorithm Hash digest
SHA256 1acbebea53bed278dca34e8db9236ce3310d6228a0bdbe5762ef085816c9f9bf
MD5 d4c016bc60f94e428440d3d9e944c14f
BLAKE2b-256 d848adc9774c3163ca7c0e5cf0c4dab90425ea990d86edd3b5a2b3deb181e375

See more details on using hashes here.

Provenance

The following attestation bundles were made for canary_wm-26.3.5.tar.gz:

Publisher: publish.yml on sandialabs/canary

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file canary_wm-26.3.5-py3-none-any.whl.

File metadata

  • Download URL: canary_wm-26.3.5-py3-none-any.whl
  • Upload date:
  • Size: 420.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for canary_wm-26.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 29528850719eee9d977995135c85add4c6b4db5f231579d7c752d641b4531303
MD5 d805f0014b44f8fa1452329b69b8df69
BLAKE2b-256 9126e50158f30c1e3d00bb5692bcd180b4a5d5372cb91f3736a410e3a98deed5

See more details on using hashes here.

Provenance

The following attestation bundles were made for canary_wm-26.3.5-py3-none-any.whl:

Publisher: publish.yml on sandialabs/canary

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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