Skip to content

Collection of simple WDL's for use in unit testing of WDL-centric software such as PROOF

License

Notifications You must be signed in to change notification settings

FredHutch/wdl-unit-tests

Repository files navigation

wdl-unit-tests

Runs on Cromwell WOMtool Validation API Tests

A collection of WDL (Workflow Description Language) workflows designed for testing WDL execution environments and backend configurations. Each workflow tests a specific aspect of WDL functionality while maintaining simplicity for easy debugging and verification.

Usage

Each workflow can be run using standard WDL execution engines:

# Using Cromwell
java -jar cromwell.jar run <workflow_name>.wdl

# Using miniwdl
miniwdl run <workflow_name>.wdl

Purpose

This test suite is designed to:

  • Validate WDL execution environments
  • Test different backend configurations
  • Verify software deployment methods (native, container, modules)
  • Serve as examples for WDL development

Contributing

See our CONTRIBUTING.md for exact details on how to contribute.

Cromwell tests

A suite of tests for running WDLs against Cromwell are located in tests/cromwell-api. Tests are run using Python. To run tests:

  • clone this repository locally and cd into it
  • if you don't have uv installed, install it
  • create a virtual environment: uv venv. This should pick up the Python version specified in .python-version. If you do not have the version given in .python-version it will be installed by uv.
  • activate the virtual environment: source .venv/bin/activate
  • check that you have the Python version in .python-version: python --version
  • set a PROOF token for the test user used for these tests as PROOF_API_TOKEN_DEV. the value is in 1password (Secrets and env vars in 1password). Talk to Sean or Scott if you don't have access.
    1. Open 1password and find the API key.
    2. Right-click the key and select "Copy Secret Reference."
    3. Run: export PROOF_API_TOKEN_DEV="op://secret/reference/copied/from/1PW"
  • run tests, for example: op run -- uv run pytest tests/cromwell-api --verbose

To add tests:

  • Tests must be in files beginning with test-, and be in the tests/ dir. All tests against the Cromwell API should go into tests/cromwell-api/ dir
  • Ideally use the pytest fixture cromwell_api created in tests/cromwell-api/conftest.py to call the Cromwell API. If there's a method missing that you need add it to the CromwellApi class in tests/cromwell-api/cromwell.py
  • Make sure the tests pass.
  • Put changes to code on a branch, then open a PR

About

Collection of simple WDL's for use in unit testing of WDL-centric software such as PROOF

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •