OpenViSTAI · Agents · Blockchain · Crypto
Menu

OPENVIST LEARN · FREE LESSONS

Project: test failures and connect a real recipe

Prove a small set of useful behaviours and decide what remains outside the tool’s scope.

Lesson 22 of 22 · About 30 minutes · Beginner · English

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.

Run the regression suiteTERMINAL · Bash
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.

Keep learning with a real example