87.0 Braveheart

The Avocado team is proud to present another release: Avocado 87.0, AKA “Braveheart”, is now available!

Release documentation: Avocado 87.0

Users/Test Writers

  • The avocado assets command has been expanded and now can purge the cache based on its overall size. To keep 4 GiB of the most recently accessed files, you can run avocado assets purge --by-overall-limit=4g. For more information, please refer to the documentation: Removing by overall cache limit.

  • avocado.skipIf() and avocado.skipUnless() now allow the condition to be a callable, to be evaluate much later, and also gives them access to the test class. For more information, please refer to the documentation: Advanced Conditionals.

  • The presentation of SIMPLE tests have been improved in the sense that they’re are now much more configurable. One can now set the simpletests.status.failure_fields to configure how the status line shown just after a failed test will look like, and job.output.testlogs.logfiles to determine the files that will be shown at the end of the job for failed tests.

Bug Fixes

  • The avocaod.core.safeloader now supports relative imports with names, meaning that syntax such as from ..upper import foo is not properly parsed.

  • The nrunner TAP runner now supports/parses large amounts of data, where it would previously crash when buffers were overrun.

  • The assets plugin (avocado assets command) now returns meaningful exit code on some failures and success situations.

Utility APIs

  • The avocado.utils.partition utility module now properly keeps track of loop devices and multiple mounts per device.

Internal Changes

  • The nrunner message handling code was mostly rewritten, with specific handlers for specific message types. Also, the expected (mandatory and optional) is now documented.

  • The avocado.core.nrunner.Task identifier is now automatically assigned if one is not explicitly provided.

  • The selftests/check.py Job API-based script now prints a list of the failed tests at the end of the job.

  • The nrunner standalone runners are now on their own directory on the source code tree (avocado/core/runners).

  • The nrunner base class runner is now an abstract base class.

  • The Job’s Test suite for the nrunner architecture now contains Runnables instead of Tasks, which are a better fit at that stage. Tasks will be created closer to the execution of the Job. This solves the dilemma of changing a Task identifier, which should be avoided if possible.

  • The CI jobs on Cirrus have been expanded to run the selftests in a Fedora based container environment, and a simple smokecheck on Windows.

  • A GitHub actions based job was added to the overall CI systems, initially doing the static style/lint checks.

  • The selftests have been reorganized into directories for utility modules and plugins. This should, besides making it easier to find the test file for a particular featured based on its type, also facilitate the repo split.

  • A number of test status which are not being used were removed, and the current definitions now better match the general style and are documented.

  • COPR RPM package check not attempts to install a specific package NVR (name-version-release).

  • Many Python code lint improvements, with new checks added.

Misc Changes

  • Updated Debian packaging, now based on Pybuild build system

For more information, please check out the complete Avocado changelog.