iiasa / iiasa/message-ix-models
Test NAVIGATE workflow pieces
- Dominant language
- Python
- Stars
- 32
- Forks
- 57
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 5
Description
`.project.navigate.workflow` was migrated from message_data in #350. This included tests that the Workflow can be generated using .navigate.workflow.generate(), but there were and are no tests that the workflow runs end-to-end, or that the many individual functions used in the workflow each behave as expected.
The entire workflow has a long runtime, 20–30 minutes or more. It is imaginable to run the entire workflow on snapshot scenarios, but not desirable (as least as part of the regular test suite used for pull request checks).
In order to cover the code:
- If code is to be (re)used in other projects:
- Move to common locations (not within .project.navigate).
- Add generic and atomic tests of these moved functions.
- Otherwise:
- Write atomic tests for individual functions.
- Write tests that use .workflow.generate() and then run single steps, with appropriate Scenario fixtures.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading the migration noted in #350 and the `.project.navigate.workflow` implementation. Review `.workflow.generate()` and the available Scenario fixtures, then identify individual workflow functions and steps that can be tested without running the full 20–30 minute workflow. Done means reusable functions are moved when appropriate and atomic or single-step tests cover the selected workflow behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- testing
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100