77.0 The Hangover¶
The Avocado team is proud to present another release: Avocado 77.0, AKA “The Hangover”, is now available!
Release documentation: Avocado 77.0
Users/Test Writers¶
The
avocado.Test.fetch_asset
method now has two new parameters:find_only
andcancel_on_missing
. These can be combined to cancel tests if the asset is missing after a download attempt (find_only=False
) or only if it’s present in the local system without a download having been attempted during the test (find_only=True
). This can bring better determinism for tests that would download sizable assets, and/or allow test jobs to be executable in offline environments.The
avocado-software-manager
script, a frontend to theavocado.utils.software_manager
module, now produces output as expected from a script.The
multiplex
command, an alias tovariants
, has been deprecated for a long time, and has now finally been removed.
Bug Fixes¶
When a dry-run is executed, by passing the
--dry-run
command line option, the proper file name of the test will be shown, instead of the file implementing the “fake”avocado.core.test.DryRun
class.Users of
avocado.utils.ssh.Session
as a context manager, would have all the exceptions captured and suppressed because of a buggy__exit__
implementation.
Utility APIs¶
The new
avocado.utils.pmem
module provides an interface for manage persistent memory. It allows for creating, deleting, enabling, disabling and re-configuring both namespaces and regions depending on supported hardware. It wraps the features present on thendctl
anddaxctl
binaries.The new
avocado.utils.ssh.Session.get_raw_ssh_commands()
allows access to the generated (local) commands, which could be used for advanced use cases, such as running multiple (remote) commands in a test. See theexamples/apis/utils/ssh.py
for an example.The
avocado.utils.network
module received a complete overhaul, and provides features for getting, checking and setting network information from local and even remote hosts.Better documentation for the
avocado.utils.ssh
,avocado.utils.cloudinit
,avocado.utils.service
and other modules.
Internal Changes¶
The foundation of the BP001 has been implemented, in the form of the
avocado.core.future.settings
and by adjusting pretty much all of Avocado’s code to make use of it. In the near future, this is going to replaceavocado.core.settings
.It’s now easier to write a runner script that extends the types of runnables supported by the N(ext) Runner. For an example, please refer to
examples/nrunner/runners/avocado-runner-foo
.Many more refactors on the
avocado.utils.asset
module.
For more information, please check out the complete Avocado changelog.