Progress Report for Week 5 (June 30 – July 6)
1. What did I get done this week?
-
Implemented and validated the test for ZooWESRunner[2] :
- Created a test script using pytest that calls main_runner.py with dummy CWL, input, output, and configuration JSONs.
- Ensured the correct runner initialisation message (Initialised Wes runner) was printed.
-
Resolved multiple runtime errors:
- Added missing methods: assert_parameters, get_processing_parameters, get_workflow_inputs.
- Ensured WES runner could inherit behaviour from BaseRunner.
- Fixed issues due to NoneType in httpx.BasicAuth initialisation.
-
Verified ZooWESRunner test output:
- Despite a simulated 404, the test flow and runner integration were confirmed to work.
- Avoided mocking or full network interaction to keep tests lightweight.
-
Analysed and documented structural differences between runners:
- Noted that ZooConf, ZooInputs, ZooOutputs, and CWLWorkflow were used in Calrissian and ArgoWF but are missing in WES.
- Decided to address unification in Week 6 to maintain modular structure.
- Updated
runner.py
to correctly import and instantiateExecution
class. - Executed end-to-end simulation with dummy inputs via
main_runner.py
.
2. Plan for Next Week ( July 7 - July 13 ):
- Refactor Calrissian and ArgoWF runners:
- Remove redundant logic from both and utilise shared zoo_conf.py structure.
- Ensure that both runners load ZooConf, ZooInputs, ZooOutputs, and CWLWorkflow from zoo-runner-common.
- Centralise shared config utilities:
- Move utility classes (resource handling, CWL parsing, namespace logic) into a single file: zoo_conf.py.
- Test post-refactor functionality:
- Confirm that test_main_runner_calrissian.py and test_main_runner_argowf.py run successfully using updated imports.
3. Am I blocked on anything?
- No, I am not currently blocked on anything.