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.4.16.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.4.16-py3-none-any.whl (429.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for canary_wm-26.4.16.tar.gz
Algorithm Hash digest
SHA256 d658f8ec3ddbadb9167a2178fa8e0ec4c89b715fcaa04831c02c73e9d3b9fe00
MD5 a008513082902d0e6ce71ffef93e59e4
BLAKE2b-256 8b1f5cf0476d6832a4c7ea610353c55f87d5a546b6f8b4728acd26b12e290f46

See more details on using hashes here.

Provenance

The following attestation bundles were made for canary_wm-26.4.16.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.4.16-py3-none-any.whl.

File metadata

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

File hashes

Hashes for canary_wm-26.4.16-py3-none-any.whl
Algorithm Hash digest
SHA256 d76335a47f9d4920c6d58257b74c004a381a36de91b84ac7eb393ff32ae2cdb6
MD5 fa8c4737ea49df43b5e7b2bdd0990281
BLAKE2b-256 2534e9b453ec0b031c3ee2e5c24610d5c827e7dd6f634df5063a305b01650fa3

See more details on using hashes here.

Provenance

The following attestation bundles were made for canary_wm-26.4.16-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