90.0 Bladerunner¶
The Avocado team is proud to present another release: Avocado 90.0, AKA “Bladerunner”, is now available!
Release documentation: Avocado 90.0
Important Announcement¶
The Avocado team is planning to switch the default runner, from the
implementation most people currently use (internally simply called
runner), to the newer architecture and implementation called
nrunner. This is scheduled to happen on version 91.0 (the next
release).
Users installing and relying on the latest Avocado release will be impacted by this change and should plan accordingly.
To keep using the current (soon to be legacy) runner, you must set
the --test-runner=runner command line option (or the equivalent
test_runner configuration option, under section [run]).
Known issues are being tracked on our GitHub project page, with the
nrunner tag, and new issue reports are appreciated.
Tip
To select the nrunner on this release (90.0 and earlier),
run avocado run --test-runner=nrunner.
Users/Test Writers¶
Avocado’s safeloader (the system used to find Python based tests without executing them) received a major overhaul and now supports:
Multi-level module imports, such as
from my.base.test import Testwhere a project may contain amy/basedirectory structure containingtest.pythat defines a customTestclass.Support for following the import/inheritance hierarchy when a module contains an import for a given symbol, instead of the actual
classdefinition of a symbol.Considers coroutines (AKA
async def) as valid tests, reducing the number of boiler plate code necessary for tests ofasynciobased code.Supports class definitions (containing tests or not) that use a typing hint with subscription, commonly used in generics.
Test parameters given with
-pare now support when using thenrunner.All status server URIs in the configuration are now respected for
nrunnerexecutions.The resolver plugins now have access to the job/suite configuration.
The data directories now have less heuristics and are now more predictable and consistent with the configuration set.
The JSON results (
results.json) now contain a field with the path of the test log file.The root logger for Python’s
loggingshould no longer be impacted by Avocado’s own logging initialization and clean up (which now limits itself toavocado.*loggers).
Bug Fixes¶
The
whiteboardfile and data are now properly saved when using thenrunnerThe Podman spawner will now respect the Podman binary set in the job configuration.
The date and time fields shown on some result formats, such as in the HTML report, now are proper dates/times, and not Python’s “monotonic” date/time.
The correct failure reason for tests executed with the
nrunnerare now being captured, instead of a possible exception caused by a error within the runner itself.
Utility APIs¶
avocado.utils.sshnow respects the username set when copying files viascp.
Misc Changes¶
Update of all executable script’s “shebangs” to
/usr/bin/env python3from/usr/bin/env pythonBetter handling of
KeyboardInterruptexceptions on early stages of the Avocado execution.The list of external resources was updated adding a number of projects that either are extensions of Avocado, or that use Avocado for their testing needs.
Internal Changes¶
selftests/check_tmp_dirswill only check for directories, ignoring files.The examples in the documentation no longer contain user references to specific users, using generic names and paths instead.
A duplicated step has been removed from pre-release test plan.
A setuptools command to build the man page was added.
Updates to the Travis CI jobs, testing only Python 3.9 on s390x, ppc64le, and arm64, following the move to GHA.
A weekly GHA CI job was introduced.
Better standardization of the messages that
nrunnerrunners generate by means of new utility methods.Allows the exclusion of optional plugins when doing
python3 setup.py develop.
For more information, please check out the complete Avocado changelog.