By the end of this lesson
Run project regression checks and compare a teaching project with a versioned published recipe.
Before you start
- Python 3.12 or a compatible newer Python 3 interpreter; no external packages.
- Complete lesson 21 in this route, or be comfortable with its examples.
Three words to know
- Fixture
- Small controlled input used by a test.
- Regression suite
- Checks retained to catch a defect after later changes.
- Versioned recipe
- A published script with its own sources, requirements, licence and recorded test scope.
1. Download the tests beside the source
Use the project download links from this lesson or the previous one. Save test_task_report.py and task_report.py in the same fresh practice folder. The test file creates its own temporary inputs, including invalid ones, and runs the real CLI. It does not need a VPS, network access or external packages.
python3 -m unittest -v test_task_report.py
What you should see · example output
All discovered checks should end with OK; the tested cases are listed in the downloaded file.
2. Check the boundaries you rely on
The suite covers ordinary data, an empty list, malformed JSON, unsupported statuses, wrong types, extra or duplicate keys, a missing file, invalid UTF-8, non-standard constants, nesting failure and the size and record limits. It checks stdout, stderr and process status where appropriate. Passing these cases is useful evidence, not exhaustive correctness. Run the tests again after changing the contract or implementation.
3. Read a published recipe critically
The real record-counting recipe linked below solves a related but different task. Open its requirements, sources, version and recorded test scope before downloading. It may group arbitrary string-field values instead of enforcing our exact title/status contract. Do not assume two tools share a format because both accept JSON. Use JSON Validator for a quick syntax inspection and Text Diff to review your edits; neither replaces the project’s validation rules.
Explain the program without reading it aloud: where do bytes enter, when does validation happen, and where is output written? If that explanation is difficult, return to the lesson for the corresponding step. Reliable progress means you can change a rule and add a test that would catch an incorrect implementation.
4. What comes after foundations?
Next steps can include a real project with typed interfaces, packaging, HTTP timeouts, persistence and deployment. Those need dedicated lessons rather than one oversized final script. JavaScript and Rust routes will have their own language-specific progression. Avoid adding a web server or an hourly schedule until you can run and test the local CLI manually.
YOUR TURN
A small check before you continue
Add a regression case for an uppercase status Open. Then explain whether this learning project has the published recipe’s version or test certification.
Show a suggested answer
Open is rejected because statuses are exact lowercase values. Add a test expecting failure. This is a separate MIT-licensed learning project; its tests do not certify a different recipe or establish production readiness.
Sources and scope
Documentation and examples reviewed 2026-10-18. Provider screens, package versions and output wording can differ. Examples show expected outcomes; they are not a claim that OpenViST connected to your server or verified your setup.
