70.0 The Man with the Golden Gun
The Avocado team is proud to present another release: Avocado 70.0, AKA “The Man with the Golden Gun”, is now available!
Release documentation: Avocado 70.0
Users/Test Writers
A completely new implementation of the CIT Varianter plugin implementation, now with support for constraints. Refer to CIT Varianter Plugin for more information.
Python 2 support has been removed. Support Python versions include 3.4, 3.5, 3.6 and 3.7. An effort to support Python 3.8 is also underway. If you require Python 2 support, the 69.0 LTS series (currently at version 69.1) should be used. For more information on what a LTS release means, please read RFC: Long Term Stability.
Improved safeloader support for Python unittests, including support for finding test classes that use multiple inheritance. As an example, Avocado’s safeloader is now able to properly find all of its own tests (around 700 of them).
Removal of old and redundant command line options, such as
--silent
and--show-job-log
in favor of--show=none
and--show=test
, respectively.Job result categorization support, by means of the
--job-category
option to therun
command, allows a user to create an easy to find directory, within the job results directory, for a given type of executed jobs.
Bug Fixes
Log files could have been saved as “hidden” files files (
.INFO
,.DEBUG
,.WARN
,.ERROR
) because the root logger’s name is an empty string. Now, those are saved with alog
prefix if one is not given.The second time Avocado crashes, a “crash” directory is created to hold the backtrace. On a subsequent crash, if the directory already exists, an exception would be raised for the failed attempted to create an existing directory, confusing users on the nature of the crash. Now a proper handling for the possibly existing directory is in place.
The CIT Varianter plugin was returning variants in an invalid form to the runner. This caused the plugin to fail when actually used to run tests. A functional test has also been added to avoid a regression here.
The
avocado.utils.distro
module now properly detects RHEL 8 systems.The safeloader would fail to identify Python module names when a relative import was used. This means that the experience with
$ avocado list
and$ avocado run
would suffer when trying to list and run tests that either directly or indirectly imported modules containing a relative import such asfrom . import foo
.The
avocado.utils.vmimage
can now find Fedora images for s390x.The
avocado.utils.vmimage
now properly makes use of the build option.avocado list
will now show the contents of the “key:val” tags.The Avocado test loader will correctly apply filters with multiple “key:val” tags.
Utility APIs
Two simple utility APIs,
avocado.utils.genio.append_file()
andavocado.utils.genio.append_one_line()
have been added to the benefit of some avocado-mist-tests <https://github.com/avocado-framework-tests/avocado-misc-tests>.The new
avocado.utils.datadrainer
provide an easy way to read from and write to various input/output sources without blocking a test (by spawning a thread for that).The new
avocado.utils.diff_validator
can help test writers to make sure that given changes have been applied to files.
Internal Changes
Removal of the
six
library dependency (previously used for simultaneous Python 2 and 3 support).Removal of the
sphinx
module and local “build doc” test, in favor of increased reliance on readthedocs.org.Removal of the
pillow
module used when running very simple example tests as a selftests, which in reality added very little value.All selftests are now either Python unittests or standalone executables scripts that can be run with Avocado itself natively. This was done (also) because of the N(ext) Runner proposal.
Build improvements and fixes, supporting packaging for Fedora 30 and beyond.
For more information, please check out the complete Avocado changelog.