60.0 Better Call Saul¶
The Avocado team is proud to present another release: Avocado version 60.0, AKA “Better Call Saul”, is now available!
Release documentation: Avocado 60.0
The major changes introduced on this version are listed below, roughly categorized into major topics and intended audience:
Users/Test Writers¶
The legacy options
--filter-only
,--filter-out
and--multiplex
have now been removed. Please adjust your usage, replacing those options with--mux-filter-only
,--mux-filter-out
and--mux-yaml
respectively.The deprecated
skip
method, previously part of theavocado.Test
API, has been removed. To skip a test, you can still use theavocado.skip()
,avocado.skipIf()
andavocado.skipUnless()
decorators.The
avocado.Test.srcdir()
property has been deprecated, and will be removed in the next release. Please useavocado.Test.workdir()
instead.Python 3 RPM packages are now available for the core Avocado and for many of the plugins. Users can install both versions side by side, and they’ll share the same configuration. To run the Python 3 version, run
avocado-3
(oravocado-3.x
, which x is the minor Python version) instead ofavocado
.The
avocado.utils.kernel
library now supports setting the URL that will be used to fetch the Linux kernel from, and can also build installable packages on supported distributions (such as.deb
packages on Ubuntu).The
avocado.utils.process
library now contains helper functions similar to the Python 2commands.getstatusoutput()
andcommands.getoutput()
which can be of help to people porting code from Python 2 to Python 3.
Bug Fixes¶
Each job now gets its own temporary directory, which allows multiple jobs to be used in a single interpreter execution.
On some situations, Avocado would, internally, attempt to operate on a closed file, resulting in
ValueError: I/O operation on closed file
. This has been fixed in theavocado.utils.process.FDDrainer
class, which will not only check if the file is not closed, but if the file-like object is capable of operations such asfsync()
.Avocado can now (again) run tests that will produce output in encoding different than the Python standard one. This has been implemented as an Avocado-wide, hard-coded setting, that defines the default encoding to be
utf-8
. This may be made configurable in the future.
Internal Changes¶
A memory optimization was applied, and allows test jobs with a large number of tests to run smoothly. Previously, Avocado would save the
avocado.Test.params
attribute, aavocado.core.parameters.AvocadoParams
instance to the test results. Now, it just keeps the relevant contents of the test parameters instead.A number of warnings have been enabled on Avocado’s “lint” checks, and consequently a number of mistakes have been fixed.
The usage of the
avocado.core.job.Job
class now requires the use ofavocado.core.job.Job.setup()
andavocado.core.job.Job.cleanup()
, either explicitly or as a context manager. This makes sure the temporary files are properly cleaned up after the job finishes.The exception raised by the utility functions in
avocado.utils.memory
has been renamed fromMemoryError
and becameavocado.utils.memory.MemError
. The reason is thatMemoryError
is a Python standard exception, that is intended to be used on different situations.A number of small improvements to the
avocado.Test
implementation, including makingavocado.Test.workdir()
creation more consistent with other test temporary directories, extended logging of test metadata, logging of test initialization (look forINIT
in your test logs) in addition to the already existing start of test execution (logged asSTART
), etc.
For more information, please check out the complete Avocado changelog.
Release Meeting¶
The Avocado release meetings are now open to the community via Hangouts on Air. The meetings are recorded and made available on the Avocado Test Framework YouTube channel.
For this release, you can watch the meeting on this link.