π οΈ π§° the pipeline can be continuously tested (automatically) with each pull request and merge. Multiple CI services such as travis-CI, circle-CI, etc. offer their service for free if you are an open source project.
β β β These tests can then be reflected in each PR, similar to how our documentation is now checked with each PR.
π This will save us the effort of having to manually look through any changes in the code for possible introductions of bugs to the pipeline.
π¨ Writing these tests requires a slight shift in mindset where exceptions need to be considered before-hand.
Resources:
Raphael Pierzina pytest blog post (part 1) - linkI would highly recommend starting here if you are unfamiliar with pytest. This is a wonderful post with many practice examples.
Continuous Integration / Continuous Deployment (CI/CD)
Provide unit tests and integration tests using pytest and a mock library (could be built-in unittest.mock, pytest.monkeypatch, pytest-mock, etc.)
After implementation of these tests:
Resources:
mock.patch
methodLegend
Work-in-progress (WIP) π οΈ
Data for coverage and quick CI/CD
Contigs containing annotations:
Associated data to mock for CI/CD
Unit test implementations
Common
External
Config
Taxonomy
Binning
Integration test implementations