As I planned, this week was dedicated to testing. While working on my pull request to workflows, I found a good way for testing CWL tool definitions, namely parsing formed tools with PyYAML. It turned out to be a such convinient way to import CWL tool that I thought it could be also exported in that fashion instead of Jinja2 templates. Perhaps, it can be improved in the future.

My results in this week in short:

  • The pull request with CNVkit tools finally passed checks. I have added a few more tools from CNVkit for testing, all of them appear to be valid and ready for use (though output section should be configured manually).

  • I implemented an option which allows to form outputs considering “output” keyword in the name of an argument. As I said earlier, it doesn’t precisely reflect the purpose of the argument (for instance, output-directory will be treated as File), so the formed tool requires a manual review.

  • I wrote tests for argparse2cwl CLI and for tool forming. It included tests for all user-specified options in argparse2cwl CLI (help message, basecommand, output directory, file with manually written outputs), general execution tests (subparsers) and tests for arguments (default option, types, positions, optionality).

  • Testing allowed me to reveal and fix several bugs related to option strings, output directory, basecommand options, shebang case, arguments with the same dest field.

The code for these changes can be checked via this PR.

The next week is the last one before midterm evaluation, and the project appears to be ready enough to be presented to the community. On the next week I am going finish writing tests, clean up the code, write documentation and start getting feedback from a wider circle of developers.