https://github.com/common-workflow-language/cwltest
Framework for testing CWL tools and workflows
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
4 of 26 committers (15.4%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.3%) to scientific vocabulary
Keywords
common-workflow-language
cwl
Keywords from Contributors
workflows
commonwl
sciworkflows
bioinformatics
workflow-engine
genomics
wdl
cwl-workflows
dna
workflow-description-language
Last synced: 6 months ago
·
JSON representation
Repository
Framework for testing CWL tools and workflows
Basic Info
- Host: GitHub
- Owner: common-workflow-language
- License: apache-2.0
- Language: Python
- Default Branch: main
- Size: 486 KB
Statistics
- Stars: 17
- Watchers: 42
- Forks: 18
- Open Issues: 11
- Releases: 44
Topics
common-workflow-language
cwl
Created over 9 years ago
· Last pushed 6 months ago
Metadata Files
Readme
License
README.rst
##########################################
Common Workflow Language testing framework
##########################################
|Linux Build Status| |Code coverage|
PyPI: |PyPI Version| |PyPI Downloads Month| |Total PyPI Downloads|
Conda: |Conda Version| |Conda Installs|
.. |Linux Build Status| image:: https://github.com/common-workflow-language/cwltest/actions/workflows/ci-tests.yml/badge.svg?branch=main
:target: https://github.com/common-workflow-language/cwltest/actions/workflows/ci-tests.yml
.. |Code coverage| image:: https://codecov.io/gh/common-workflow-language/cwltest/branch/master/graph/badge.svg
:target: https://codecov.io/gh/common-workflow-language/cwltest
.. |PyPI Version| image:: https://badge.fury.io/py/cwltest.svg
:target: https://badge.fury.io/py/cwltest
.. |PyPI Downloads Month| image:: https://pepy.tech/badge/cwltest/month
:target: https://pepy.tech/project/cwltest
.. |Total PyPI Downloads| image:: https://static.pepy.tech/personalized-badge/cwltest?period=total&units=international_system&left_color=black&right_color=orange&left_text=Total%20PyPI%20Downloads
:target: https://pepy.tech/project/cwltest
.. |Conda Version| image:: https://anaconda.org/bioconda/cwltest/badges/version.svg
:target: https://anaconda.org/bioconda/cwltest
.. |Conda Installs| image:: https://anaconda.org/bioconda/cwltest/badges/downloads.svg
:target: https://anaconda.org/bioconda/cwltest
This is a testing tool for checking the output of Tools and Workflows described
with the Common Workflow Language. Among other uses, it is used to run the CWL
conformance tests.
This is written and tested for Python 3.9, 3.10, 3.11, 3.12, 3.13, and 3.14
.. contents:: Table of Contents
:local:
*******
Install
*******
Installing the official package from PyPi
.. code:: bash
pip install cwltest
Or from bioconda
.. code:: bash
conda install -c bioconda cwltest
Or from source
.. code:: bash
git clone https://github.com/common-workflow-language/cwltest.git
cd cwltest && pip install .
***********************
Run on the command line
***********************
Simple command::
cwltest --test test-descriptions.yml --tool cwl-runner
*****************************************
Generate conformance badges using cwltest
*****************************************
To make badges that show the results of the conformance test,
you can generate JSON files for https://badgen.net by using --badgedir option
To generate JSON files::
cwltest --test test-descriptions.yml --tool cwl-runner --badgedir badges
...
$ cat badges/command_line_tool.json | jq .
{
"subject": "command_line_tool",
"status": "100%",
"color": "green"
}
Once you upload JSON file to a server, you make a badge by using a link like https://badgen.net/https/path/to/generated/json or https://flat.badgen.net/https/path/to/generated/json (for flat badges).
Here is an example of markdown to add a badge::

*************************
Custom file access module
*************************
If your CWL implementation does not write output files to a local file
system location but instead to some other remote storage system, you
can provide an alternate implementation of the *StdFsAccess* object
that is able to access your storage system.
Step 1:
Implement your own class with the same public interface of the
*StdFsAccess* object in *cwltest/stdfsaccess.py* (as of this writing,
the methods are *open*, *size*, *isfile* and *isdir*). These methods
should expect to be called with URIs from the *location* field of the
outputs of test cases.
Define a function that, when called, returns a new instance of your object.
Step 2:
Create a Python package containing your class (or add it to an
existing one).
In the package metadata, add an entry point that declares the module
(in this example, *my_cwl_runner.fsaccess*) containing the function
(in this example, *get_fsaccess*) that *cwltest* will invoke to get an
object implementing the *StdFsAccess* interface.
In *setup.py* this looks like:
.. code:: python
setup(
...
entry_points={"cwltest.fsaccess": ["fsaccess=my_cwl_runner.fsaccess:get_fsaccess"]}},
...
)
In *pyproject.toml* it looks like:
.. code::
[project.entry-points.'cwltest.fsaccess']
fsaccess = 'my_cwl_runner.fsaccess:get_fsaccess'
Step 3:
Install your package in the same Python environemnt as the
installation of *cwltest*. When invoked, *cwltest* will query Python
package metadata for a package with the *cwltest.fsaccess* entry point
and call it to get back a custom filesystem access object.
Owner
- Name: Common Workflow Language
- Login: common-workflow-language
- Kind: organization
- Website: https://www.commonwl.org
- Twitter: commonwl
- Repositories: 34
- Profile: https://github.com/common-workflow-language
GitHub Events
Total
- Create event: 20
- Release event: 2
- Issues event: 4
- Delete event: 16
- Issue comment event: 32
- Push event: 51
- Pull request review event: 5
- Pull request event: 33
Last Year
- Create event: 20
- Release event: 2
- Issues event: 4
- Delete event: 16
- Issue comment event: 32
- Push event: 51
- Pull request review event: 5
- Pull request event: 33
Committers
Last synced: almost 3 years ago
All Time
- Total Commits: 224
- Total Committers: 26
- Avg Commits per committer: 8.615
- Development Distribution Score (DDS): 0.754
Top Committers
| Name | Commits | |
|---|---|---|
| Michael R. Crusoe | m****e@g****m | 55 |
| dependabot[bot] | 4****]@u****m | 25 |
| Tomoya Tanjo | t****o@g****m | 18 |
| Michael R. Crusoe | m****c@u****m | 17 |
| Michael R. Crusoe | 1****c@u****m | 15 |
| Toni Ruza | t****a@s****m | 15 |
| Anton Khodak | a****k@u****t | 14 |
| Peter Amstutz | p****z@v****m | 13 |
| Peter Amstutz | p****z@c****m | 11 |
| Manvendra Singh | m****0@g****m | 9 |
| Peter Amstutz | p****z@c****m | 6 |
| kapilkd13 | k****3@g****m | 5 |
| requires.io | s****t@r****o | 3 |
| dependabot-preview[bot] | 2****]@u****m | 3 |
| Luka Stojanovic | l****c@s****m | 2 |
| Iacopo Colonnelli | i****2@g****m | 2 |
| Milos Ljubinkovic | m****c@s****m | 2 |
| Peter Amstutz | t****n@i****g | 1 |
| Adam Novak | a****k@s****u | 1 |
| Manabu ISHII | m****b@g****m | 1 |
| Joel Armstrong | j****r@u****u | 1 |
| Bruno P. Kinoshita | k****w@u****m | 1 |
| Tomoya Tanjo | t****o@n****p | 1 |
| Alex Buchanan | b****e@o****u | 1 |
| Rupert Nash | r****t@n****k | 1 |
| halilozercan | h****n@g****m | 1 |
Committer Domains (Top 20 + Academic)
sbgenomics.com: 3
nash.me.uk: 1
ohsu.edu: 1
nii.ac.jp: 1
ucsc.edu: 1
soe.ucsc.edu: 1
interreality.org: 1
requires.io: 1
curii.com: 1
curoverse.com: 1
veritasgenetics.com: 1
ukr.net: 1
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 25
- Total pull requests: 188
- Average time to close issues: over 1 year
- Average time to close pull requests: about 1 month
- Total issue authors: 12
- Total pull request authors: 13
- Average comments per issue: 1.44
- Average comments per pull request: 1.47
- Merged pull requests: 166
- Bot issues: 1
- Bot pull requests: 109
Past Year
- Issues: 1
- Pull requests: 43
- Average time to close issues: 29 days
- Average time to close pull requests: 2 days
- Issue authors: 1
- Pull request authors: 4
- Average comments per issue: 0.0
- Average comments per pull request: 1.42
- Merged pull requests: 37
- Bot issues: 0
- Bot pull requests: 32
Top Authors
Issue Authors
- mr-c (7)
- tom-tan (5)
- adamnovak (2)
- thomasyu888 (2)
- tetron (2)
- anton-khodak (1)
- nsoranzo (1)
- wgerlach (1)
- pkp124 (1)
- stxue1 (1)
- dependabot-preview[bot] (1)
- nicocesar (1)
Pull Request Authors
- dependabot[bot] (105)
- mr-c (31)
- tom-tan (30)
- tetron (6)
- nsoranzo (4)
- dependabot-preview[bot] (4)
- GlassOfWhiskey (2)
- rupertnash (1)
- joelarmstrong (1)
- bosonogi (1)
- adamnovak (1)
- kinow (1)
- manabuishii (1)
Top Labels
Issue Labels
help wanted (1)
Pull Request Labels
dependencies (109)
python (78)
github_actions (11)
Packages
- Total packages: 2
-
Total downloads:
- pypi 17,041 last-month
- Total docker downloads: 231
-
Total dependent packages: 2
(may contain duplicates) -
Total dependent repositories: 69
(may contain duplicates) - Total versions: 53
- Total maintainers: 4
pypi.org: cwltest
Common Workflow Language testing framework
- Homepage: https://github.com/common-workflow-language/cwltest
- Documentation: https://cwltest.readthedocs.io/
- License: Apache 2.0
-
Latest release: 2.6.20250818005349
published 6 months ago
Rankings
Docker downloads count: 1.6%
Dependent repos count: 1.8%
Downloads: 2.0%
Dependent packages count: 3.2%
Average: 5.3%
Forks count: 8.9%
Stargazers count: 14.6%
Maintainers (4)
Last synced:
6 months ago
proxy.golang.org: github.com/common-workflow-language/cwltest
- Documentation: https://pkg.go.dev/github.com/common-workflow-language/cwltest#section-documentation
- License: apache-2.0
-
Latest release: v1.0.20160907111242
published over 9 years ago
Rankings
Dependent packages count: 5.3%
Average: 5.5%
Dependent repos count: 5.7%
Last synced:
6 months ago
Dependencies
mypy-requirements.txt
pypi
- mypy ==0.960
- types-requests *
- types-setuptools *
requirements.txt
pypi
- defusedxml *
- junit-xml >=1.8
- pytest <8
- schema-salad >=5.0.20200220195218,<9
setup.py
pypi
- defusedxml *
- junit-xml *
- schema-salad *
test-requirements.txt
pypi
- pytest >=6.2,<7.2 test
- pytest-cov * test
.github/workflows/ci-tests.yml
actions
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- codecov/codecov-action v3 composite
.github/workflows/codeql-analysis.yml
actions
- actions/checkout v3 composite
- github/codeql-action/analyze v2 composite
- github/codeql-action/init v2 composite
dev-requirements.txt
pypi
- autoflake * development
- bandit * development
- black * development
- diff_cover * development
- flake8 * development
- flake8-bugbear * development
- isort * development
- pep257 * development
- pydocstyle * development
- pylint * development
- pyupgrade * development
- tox <5 development
- tox-pyenv * development
- wheel * development
docs/requirements.txt
pypi
- sphinx >=2.2
- sphinx-autoapi *
- sphinx-autodoc-typehints *
- sphinx-rtd-theme ==1.1.1
- sphinxcontrib-autoprogram *
- typed_ast *