71.0 Downton Abbey¶
The Avocado team is proud to present another release: Avocado 70.0, AKA “Downton Abbey”, is now available!
Release documentation: Avocado 71.0
- Avocado can now run on systems with nothing but Python 3 (and
setuptools). This means that it won’t require extra packages, and should be easier to deploy on containers, embedded systems, etc. Optional plugins may have additional requirements.
- A new and still experimental test runner implementation, known as “N(ext) Runner” has been introduced. It brings a number of different concepts, increasing the decoupling between a test (and its runner) and the job. For more information, please refer to the early documentation.
- The new
avocado.cancel_on()decorator has been added to the Test APIs, allowing you to define the conditions for a test to be considered canceled. See one example here.
glibplugin got a configuration option its safe/unsafe operation, that is, whether it will execute binaries in an attempt to find the whole list of tests. Look for the
glib.confshipped with the plugin to enable the unsafe mode.
- Avocado can now use tags inside Python Unittests, and not only on its own Instrumented tests. It’s expected that other forms or providing tags for other types of tests will also be introduced in the near future.
- The HTML report will now show, as a handy pop-up, the contents of the test whiteboard. If you set, say, performance metrics there, you’ll able to see straight from the report.
- The HTML report now has filtering support by test status, and can show all records in the table.
avocado.utils.runtimemodule, a badly designed mechanism for sharing Avocado runtime settings with the utility libraries, has been removed.
- The test runner feature that would allow binaries to be run
transparently inside GDB was removed. The reason for dropping such
a feature have to do with how it limits the test runner to run one
test at a time, and the use of the
avocado.utils.runtimemechanism, also removed.
- Initial examples for writing custom jobs, using the so called Job
API, have been added to
examples/jobs. These APIs are still non-public (under core), but they’re supposed to become public and supported soon.
- By means of a new plugin (
merge_files, of type
job.prepost), when using the output check record features, duplicate files created by different tests/variants will be consolidated into unique files.
- The HTML plugin now correctly shows the date for tests that were never executed because of interrupted jobs.
- A temporarily workaround for a stack overflow problem in Python 3.7 has been addressed.
- The pict plugin (a varianter implementaion) now properly yields the variants paths as a list.
- A Python 3 related fix to mod:avocado.utils.software_manager, that
was using Python 2
- A Python 3 related fix to the docker plugin, that wasn’t caught earlier.
mountflags to be set.
avocado.utils.cpu.get_cpu_vendor_name()now returns the CPU vendor name for POWER9.
avocado.utils.assetnow allows a given location, as well as a list, to be given, simplifying the most common use case.
avocado.utils.process.SubProcess.stop()now supports setting a timeout. Please refer to the documentation for the important details on its behavior.
avocado.utils.memorynow properly handles hugepages for POWER platform.
- Removal of the
stevedorelibrary dependency (previously used for the dispatcher/plugins infrastructure).
make checknow runs selftests using the experimental N(ext) Runner.
- Formal support for Python 3.7, which is now on our CI checks, documentation and module information.
- The Yaml to Mux plugin now uses a safe version of the Yaml loader, so that the execution of arbitrary Python code from Yaml input is now no longer possible.
- Codecov coverage reports for have been enabled for Avocado, and can be seen on every pull request.
- New tests have been added to many of the optional plugins.
- Various pylint compliance improvements, including w0231, w0235, w0706, w0715 and w0221.
- Avocado’s selftests now use tempfile.TemporaryDirectory instead of mkdtemp and shutil.rmtree.
avocado.core.job.Jobinstantiation now takes a
configdictionary parameter, instead of a
argparse.Namespaceinstance, and keeps it in a
avocado.core.job.Jobinstances don’t have a
referencesattribute anymore. That information is available in the
configattribute, that is,
- Basic checks for Fedora and RHEL 8 using Cirrus CI have been added, and will be shown on every pull request.
For more information, please check out the complete Avocado changelog.