Avocado-framework

Latest version: v108.0

Safety actively analyzes 685525 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 6

108.0

107.0

106.0

Users/Test Writers
==================

* The usage of Coverage.py (the de-facto Python tool for for test
coverage) with Avocado received a number of improvements such as
support for ``python-unittest`` tests in addition to
``avocado-instrumented`` tests.

* When listing tests with ``avocado -V list``, the resolver that
handled the reference to test resolution is now shown. The reason
is that with the introduction of resolvers such as
``runnable-recipe`` and ``runnables-recipe`` the resolver may not be
the same as the test type.

* Job log files can now use a memory buffer to reduce I/O pressure
when there's much log activity. Users can set the
``job.run.logging_buffer_size`` with the desired buffer size.

Utility Modules
===============

* `avocado.utils.disk.get_io_scheduler_list`: new utility
function that returns the I/O scheduler available for the I/O
device.

* `avocado.utils.disk.get_io_scheduler`: new utility function
that returns the I/O scheduler which is currently set for a device.

Bug Fixes
=========

* The resolver could fail to check file permissions on systems such as
macOS due to limitations in `os.access`. A more robust check
is now used based on `os.stat`.

* A hardcoded reference and check for the "nrunner" runner plugin was
removed.

* A regression that was adding the entire Avocado configuration to
every runnable was fixed.

* The suite configuration is now applied to all runnables at suite
creation time, instead of at just before the test execution time
with the ``avocado run`` command/plugin.

* The current configuration of a runnable is used to set its
identifier.

Additional information
======================

For more information, please check out the complete
Avocado [changelog](https://github.com/avocado-framework/avocado/compare/105.0...106.0).

For more information on the actual issues addressed, please check out
the [milestone](https://github.com/avocado-framework/avocado/milestone/32) information.

For more information on the release codename, please refer to [IMDb](https://www.imdb.com/title/tt0067820/).

105.0

Users/Test Writers
==================

* A couple of new resolvers were introduced: one that can reads from
standard ``JSON`` "runnable recipe" files, and one that can read
from a ``JSON`` file containing multiple occurrences of the
previously mentioned runnable recipes. This allows users to
"configure" in ``JSON`` what Avocado is going to resolve, and if
it's the case, run as a test.

* Users can now define common dependency for each test inside job or
with Job API inside suite. With this feature, it should be easier
to create jobs with tests which have common dependencies.

* More control over the environment variables in ``exec-test`` was
introduced. It's now possible to disable one environment variable or
clear the whole environment during the test runtime so it won't be
available to the underlying executable.

Utility Modules
===============

* :mod:`avocado.utils.cpu`: added support for getting physical cores
from ``lscpu``

* :mod:`avocado.utils.git`: added support for checking out submodules

* :mod:`avocado.utils.cpu`: utility update for AMD x86_64 arch to
return family details, model number for x86_64 and Zen information

* :mod:`avocado.utils.disk`: improved the exception handling

* :mod:`avocado.utils.astring`: optimized ``bitlist_to_string()`` using
``bytearray``

Bug Fixes
=========

* Runnables no longer ignore the configuration passed from recipes

* Runnable (and Task) dependencies could deadlock and fail to complete
if they were duplicates. Duplicates are now removed before
attempting to fulfill them.

Internal Changes
================

* Added a module boundary check for importing avocado plugins inside
avocado core.

* Some selftests had shebangs and ``main()`` calls removed

* The ``JSON`` based runnable recipe now receives schema based
validation when the supporting library is available, or a simplified
check when it's not.

* The GitHub actions used on the various workflows were all updated to
the latest available versions.

* The code style is slightly changed with the update to black version 24.3.0

Additional information
======================

For more information, please check out the complete
`Avocado changelog
<https://github.com/avocado-framework/avocado/compare/104.0...105.0>`_.

For more information on the actual issues addressed, please check out
the `milestone information
<https://github.com/avocado-framework/avocado/milestone/31>`_.

For more information on the release codename, please refer to `IMDb
<https://www.imdb.com/title/tt14230458/>`_.

104.0

Users/Test Writers
==================

* The minimal Python version requirement now is 3.8. Python 3.7 and
earlier are not tested nor supported starting with this release.
* The result.json test attributes related to time has been renamed in version 104.0
to correspond to `job.result.tests` in Job API. The Difference between new and old::

time_start = start
actual_time_start = actual_start
time_end = end
actual_time_end = actual_end
time_elapsed = time

* The parsing of avocado configuration files has been improved to
show better error messages during parsing error.
* Unused and legacy ``simpletest.*`` settings have been removed
from avocado as leftover of legacy runner.

Utility Modules
===============

* :func:`avocado.utils.network.interfaces.NetworkInterface.get_device_IPI_name`,
got a fix for "ERROR: 'CmdResult' object has no attribute 'decode'".
* :func:`avocado.utils.data_structures.comma_separated_ranges_to_list` has been optimized.
* :mod:`avocado.utils.podman` got a synchronous version of podman utilities.

Bug Fixes
=========

* TaskStatusService got error handling for lost connection and
``avocado-runner-*`` won’t crash any more when the status server socket is closed.

Internal Changes
================

* The ``contrib/scripts/avocado-fetch-eggs.py`` got an update for
egg handling related to post LTS changes.
* Added CodeQL workflow for GitHub code scanning in Avocado repo.
* The ``tmpfile.mktemp`` has been changed to ``tmpdir`` because of security reasons.
* CI: fix for testing of different OS images with egg and version tasks.
* Unused and legacy ``runner queue`` has been removed from :class:`avocado.Test`.

Additional information
======================

For more information, please check out the complete
`Avocado changelog
<https://github.com/avocado-framework/avocado/compare/103.0...104.0>`_.

For more information on the actual issues addressed, please check out
the `milestone information
<https://github.com/avocado-framework/avocado/milestone/30>`_.

For more information on the release codename, please refer to `IMDb
<https://www.imdb.com/title/tt9362492/>`_.

103.0

Not secure
Users/Test Writers
==================

* The remote spawner is a new optional plugin that makes use of remote
aexpect (https://github.com/avocado-framework/aexpect/) sessions
(to remote hosts or equivalently remote containers behind remote hosts
forwarded via specific ports) as slots to schedule test runs on.

* The format of test log messages have been reverted to more closely
match previous LTS (92.x) format like line number and Python module
name (see https://github.com/avocado-framework/avocado/issues/5721).

* The ``avocado-instrumented`` runner used to have an internal timeout
of 24 hours that users might not have intended to use or respect.
This internal timeout has been removed and configuration such as
``task.timeout.running`` or ``--job-timeout`` are the timeout users
should worry about (see https://github.com/avocado-framework/avocado/issues/5394).

* The ``json`` result file now contains the actual start and end time
of tests in a format based on :func:`time.time` (see
https://github.com/avocado-framework/avocado/pull/5768).

* The ``avocado jobs list`` command now presents a sorted list of jobs
based on the modification of the results file (see https://github.com/avocado-framework/avocado/pull/5762/commits/a956ff05ad18cec8fad88401a51d95a9da4a1462.

* If the status server is manually configured (that is,
``--status-server-disable-auto`` is set), and either the URI
(``--status-server-uri`` or the listen address is given
(``--status-server-listen``) the other will automatically be set to
the same value for convenience (see
https://github.com/avocado-framework/avocado/pull/5748).

* Python 3.12 is now formally supported (see
https://github.com/avocado-framework/avocado/pull/5789).

* Resolvers can now choose to report a resolution result of type
:data:`avocado.core.resolver.ReferenceResolutionResult.CORRUPT`, which
can be used when the reference seems to be accurate to the resolver in
question, but something is broken in the resolved entity (such as a
corrupt test file. See
https://github.com/avocado-framework/avocado/issues/5710.

* When running ``avocado-instrumented`` tests with a ``timeout``
defined, it's possible to set a ``timeout_factor`` parameter that
will either extend or shorten the actual timeout for that execution
(see https://github.com/avocado-framework/avocado/issues/5820).

Utility Modules
===============

* The :meth:`avocado.utils.ssh.Session.cmd` now supports setting a
``timeout`` for the command execution (see
https://github.com/avocado-framework/avocado/issues/5775).

* The :mod:`avocado.utils.distro` module added specific detection for
CentOS Stream (see https://github.com/avocado-framework/avocado/issues/5667).

* The :mod:`avocado.utils.distro` module improved detection for
Amazon Linux (see https://github.com/avocado-framework/avocado/issues/5668>.

Bug Fixes
=========

* The loader for ``avocado-instrumented`` tests could end up using the
wrong Python module if a module of the same name existed elsewhere
in the import path. Now, the actual path of the Python file
containing the test (given in the ``modulePath`` parameter) is used
explicitly by the Python module importer (see
https://github.com/avocado-framework/avocado/issues/5686).

* When :ref:`dependencies <managing-requirements>` are not fulfilled,
test results would be missing, instead of being clearly shown as
``CANCEL`` (see https://github.com/avocado-framework/avocado/issues/5667).

* :func:`avocado.utils.path.init_dir` would raise
:class:`FileExistsError` if the directory already existed, usually
causing crashes on its users (see `5746
<https://github.com/avocado-framework/avocado/pull/5746>`__).

* The :ref:`whiteboard <saving-test-generated-custom-data>` file was
being created with duplicate content because of the legacy runner
implementation, which is now removed (see `5770
<https://github.com/avocado-framework/avocado/issues/5770>`__).

* The ``avocado jobs show`` command now presents the correct time
tests have ended (see `5762
<https://github.com/avocado-framework/avocado/pull/5762/commits/b7ec30e69b2a51f97eb97ee445b12997366b5652>`__).

* The :func:`avocado.utils.download.url_open` function used to
misleadingly says that a URL had been retrieved at a stage where
only a response was obtained. It now presents an accurate message
(see `5742
<https://github.com/avocado-framework/avocado/issues/5742>`__).

* The Podman Spawner had a race condition where the state of the
container (and thus the task) would not take into account the
transition from "created" to "running" (see `5783
<https://github.com/avocado-framework/avocado/pull/5783>`__).

* Avocado has re-enabled ``stdout`` and ``stderr`` files for
``avocado-instrumented`` files (see `5779
<https://github.com/avocado-framework/avocado/issues/5779>`__).

* The Spawner interface and implementations now properly checks if the
termination of a task was successful or not. The statemachine uses
that information to let users know of situations where a task could
not be terminated (see `5788
<https://github.com/avocado-framework/avocado/pull/5788>`__).

* The ``tearDown()`` of ``avocado-instrumented`` now gets called
properly if a test times out (see `5795
<https://github.com/avocado-framework/avocado/pull/5795>`__).

* The Process Spawner now properly handles a situation where, during
the termination of a task, the process itself finishes before the
spawner has the chance to do so (see `5805
<https://github.com/avocado-framework/avocado/pull/5805>`__).

* When interrupting ``avocado-instrumented`` tests, the ``tearDown()``
will be called to allow for cleanups. If an error occurred during
the execution of ``tearDown()`` the status of the test would change
to ``ERROR`` (instead of keeping its original ``INTERRUPT`` status
(see `5801
<https://github.com/avocado-framework/avocado/issues/5801>`__).

* The HTML result plugin was not properly filtering tests based on
their status (see `5828
<https://github.com/avocado-framework/avocado/issues/5828>`__).

* The ``testlogs`` plugin was not showing tests with all "not ok"
statuses and was showing test names instead of test IDs which are
unique in a suite (see `5827
<https://github.com/avocado-framework/avocado/issues/5827>`__).

Additional information
======================

For more information, please check out the complete
`Avocado changelog
<https://github.com/avocado-framework/avocado/compare/102.0...103.0>`_.

For more information on the actual issues addressed, please check out
the `milestone information
<https://github.com/avocado-framework/avocado/milestone/29?closed=1>`_.

For more information on the release codename, please refer to `IMDb
<https://www.imdb.com/title/tt7599146>`_.

Page 1 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.