Python

avocado-framework

Latest version: v100.1

PyUp actively tracks 488,662 Python packages for vulnerabilities to keep your Python environments secure.

Scan your dependencies

Page 1 of 5

100.1

========================

* Podman spawner bug fix: use runner plugins instead of removed
generic nrunner. This is the issue that prompted this bug fix
release, and it re-enables the Podman spawner functionality when
using the default eggs provided by the Avocado project.

* Include Python 3.11 eggs builds during the release process.

* CI (GitHub Actions) fixes and versions bumps.

The following changes are from the 100.0 release notes.

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

* Asset cache checksum can now use multiple hash algorithms. The
ability to store multiple hashes, created by different algorithm to
the cache ``CHECKSUM`` file was added. This is useful when
different tests refer to the same asset, but use different hash
algorithms.

* Information on a test's file name was introduced in the xunit/junit
result files. Although not a standard field everywhere, this
information is used and displayed on platforms such as GitLab.

* Python 3.11 (final) is now formally supported and tested on CI.

* The ``runner.output.utf8`` and ``core.input_encoding`` were settings
were removed, and now default to the the system's setting (by using
:func:`sys.getdefaultencoding()`.

* Command line options prefixed with ``--nrunner-`` had that prefixed
removed. A command line option such as ``--nrunner-spawner`` is now
simply ``--spawner``. The matching configuration options such as
``nrunner.something`` became ``run.something``. This is due to the
fact that nrunner is now the only runner implementation offered by
default, so the differentiation and extra typing seems unnecessary.
If other runners are added in the future (or by custom, out of tree,
plugins) they can choose to respect the existing options if they
apply.

* The ``avocado jobs get-output-files`` command was removed. Its
original intended purpose has not been relevant for some time, and
the preservation of output files are already handled directly by all
spawner implementations.

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

* :mod:`avocado.utils.process` received the changes necessary to cope
with changes in :func:`signal.default_int_handler`. It now passes
all the given arguments along.

* :mod:`avocado.utils.software_manager` now allows DNF/YUM repository
options to be customized.

Bug Fixes
=========

* Fixed a limit for ``exec-test`` and ``tap`` tests, where the
``STDOUT`` or ``STDERR`` buffers could be exhausted, and the test
would get stuck forever on further writes. The ``exec-test`` and
``tap`` runners can now make use of the (optional) ``output_dir``
parameter, resulting in a much more efficient I/O handling. When
``output_dir`` is used, the only limitation on ``STDOUT`` and
``STDERR`` is the file-system itself.

* The ``--show`` option was not being respected when running
``avocado-instrumented`` tests. The log messages generated by, say,
an ``avocado.test.foo`` logger, should be presented at the Avocado
job UI as it happens, provided ``--show=avocado.test.foo`` was
given.

* An existing aid for the usage of Avocado running from Python eggs
would result in unnecessary changes to the ``PYTHONPATH``. Those
changes could cause unpredictable Python module import behavior.

* Fixed a condition in which, when failing to import Python modules on
tests, the error message returned was ``Test.__init__() got an
unexpected keyword argument 'run.results_dir'`` which was quite
cryptic and confused users.

* The assets fetch plugin won't attempt to fetch and cache the assets
of the same test more than once.

* Running tests' statuses are now properly marked as ``INTERRUPTED``
instead of ``CANCEL`` when they reach their own (or the job)
timeout.

* The ``avocado jobs show`` command used to show a simplified and
possibly incorrect information about the spawner used. This
information is no longer displayed, given that it's a test suite
attribute, and not really a job level information.

* The Podman spawner could fail to preserve the output directory when
users on the host and the container did not match. This has now
been fixed.

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

* The resolver received the same kind of test coverage as the legacy
loader architecture, in preparation for the removal of the loader.

* The Fedora version used on selftests related to the Podman spawner
were pinned to 36. The reason is that, because of the release of
Fedora 37, which has Python 3.11, no ``setuptools`` or Avocado eggs
are available for Python 3.11 yet.

* Removal of the generic ``avocado-runner`` runner, which is a
reminiscent of the all-in-one ``nrunner.py`` file, for ease of
deployment. With the nrunner split and now deployed via Python eggs,
it does not have to exist anymore.

* Selftests will no longer not store temporary results in user's
default results directory.

---

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

100.0

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

* Asset cache checksum can now use multiple hash algorithms. The
ability to store multiple hashes, created by different algorithm to
the cache ``CHECKSUM`` file was added. This is useful when
different tests refer to the same asset, but use different hash
algorithms.

* Information on a test's file name was introduced in the xunit/junit
result files. Although not a standard field everywhere, this
information is used and displayed on platforms such as GitLab.

* Python 3.11 (final) is now formally supported and tested on CI.

* The ``runner.output.utf8`` and ``core.input_encoding`` were settings
were removed, and now default to the the system's setting (by using
:func:`sys.getdefaultencoding()`.

* Command line options prefixed with ``--nrunner-`` had that prefixed
removed. A command line option such as ``--nrunner-spawner`` is now
simply ``--spawner``. The matching configuration options such as
``nrunner.something`` became ``run.something``. This is due to the
fact that nrunner is now the only runner implementation offered by
default, so the differentiation and extra typing seems unnecessary.
If other runners are added in the future (or by custom, out of tree,
plugins) they can choose to respect the existing options if they
apply.

* The ``avocado jobs get-output-files`` command was removed. Its
original intended purpose has not been relevant for some time, and
the preservation of output files are already handled directly by all
spawner implementations.

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

* :mod:`avocado.utils.process` received the changes necessary to cope
with changes in :func:`signal.default_int_handler`. It now passes
all the given arguments along.

* :mod:`avocado.utils.software_manager` now allows DNF/YUM repository
options to be customized.

Bug Fixes
=========

* Fixed a limit for ``exec-test`` and ``tap`` tests, where the
``STDOUT`` or ``STDERR`` buffers could be exhausted, and the test
would get stuck forever on further writes. The ``exec-test`` and
``tap`` runners can now make use of the (optional) ``output_dir``
parameter, resulting in a much more efficient I/O handling. When
``output_dir`` is used, the only limitation on ``STDOUT`` and
``STDERR`` is the file-system itself.

* The ``--show`` option was not being respected when running
``avocado-instrumented`` tests. The log messages generated by, say,
an ``avocado.test.foo`` logger, should be presented at the Avocado
job UI as it happens, provided ``--show=avocado.test.foo`` was
given.

* An existing aid for the usage of Avocado running from Python eggs
would result in unnecessary changes to the ``PYTHONPATH``. Those
changes could cause unpredictable Python module import behavior.

* Fixed a condition in which, when failing to import Python modules on
tests, the error message returned was ``Test.__init__() got an
unexpected keyword argument 'run.results_dir'`` which was quite
cryptic and confused users.

* The assets fetch plugin won't attempt to fetch and cache the assets
of the same test more than once.

* Running tests' statuses are now properly marked as ``INTERRUPTED``
instead of ``CANCEL`` when they reach their own (or the job)
timeout.

* The ``avocado jobs show`` command used to show a simplified and
possibly incorrect information about the spawner used. This
information is no longer displayed, given that it's a test suite
attribute, and not really a job level information.

* The Podman spawner could fail to preserve the output directory when
users on the host and the container did not match. This has now
been fixed.

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

* The resolver received the same kind of test coverage as the legacy
loader architecture, in preparation for the removal of the loader.

* The Fedora version used on selftests related to the Podman spawner
were pinned to 36. The reason is that, because of the release of
Fedora 37, which has Python 3.11, no ``setuptools`` or Avocado eggs
are available for Python 3.11 yet.

* Removal of the generic ``avocado-runner`` runner, which is a
reminiscent of the all-in-one ``nrunner.py`` file, for ease of
deployment. With the nrunner split and now deployed via Python eggs,
it does not have to exist anymore.

* Selftests will no longer not store temporary results in user's
default results directory.

---

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

99.0

98.0

Hello everyone,

This is another Avocado release announcement: 98.0 is now available!

Release Notes
=============

Since we host the release notes alongside our official documentation, please refer to the following link for the complete information about this release:

https://avocado-framework.readthedocs.io/en/98.0/releases/98_0.html

Installing Avocado
==================

Instructions are available in our documentation on how to install either with packages or from source:

https://avocado-framework.readthedocs.io/en/98.0/guides/user/chapters/installing.html

RPM packages for the current Fedoras (35 and 36) and EL 8 (Red Hat Enterprise Linux, CentOS Stream, etc) will be available on those distributions' "avocado" module, on the "latest" stream. The installation should be straightforward, and you can find instructions here:

https://avocado-framework.readthedocs.io/en/98.0/guides/user/chapters/installing.html#fedora

Also, updated Python source and binary packages are available on PyPI:

https://pypi.org/project/avocado-framework/

Avocado-VT
==========

This Avocado release is compatible with Avocado-VT 98.0, also released Today.

Happy hacking and testing!

97.0

Hello everyone,

This is another Avocado release announcement: 97.0 is now available!

Release Notes
=============

Since we host the release notes alongside our official documentation,
please refer to the following link for the complete information about
this release:

https://avocado-framework.readthedocs.io/en/97.0/releases/97_0.html

Installing Avocado
==================

Instructions are available in our documentation on how to install
either with packages or from source:

https://avocado-framework.readthedocs.io/en/97.0/guides/user/chapters/installing.html

RPM packages for the current Fedoras (34, 35 and 36) and EL 8 (Red Hat
Enterprise Linux, CentOS Stream, etc) will be available on those
distributions' "avocado" module, on the "latest" stream. The
installation should be straightforward, and you can find instructions
here:

https://avocado-framework.readthedocs.io/en/97.0/guides/user/chapters/installing.html#fedora

Also, updated Python source and binary packages are available on PyPI:

https://pypi.org/project/avocado-framework/

Avocado-VT
==========

This Avocado release may work with the latest Avocado-VT code, but that
combination was not supported. The next Avocado release (98.0) will
have a matching Avocado-VT release, and compatibility will be guaranteed.

Happy hacking and testing!

96.0

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

* Plugins can now have a builtin priority in relation to other plugins
of the same type that will affect its :ref:`execution order
<plugins_execution_order>`. This is in addition to the configurable
``plugins.$type.order`` settings.

* Avocado will now print a more descriptive list of tests that
finished with a particular status at the end of the job (``FAIL``
and ``ERROR`` by default).

Bug Fixes
=========

* Python logging streams other than the ones in the ``avocado.*``
namespace will now be saved to the ``debug.log`` files when set with
``--store-logging-stream`` option.

Utility APIs
============

* The :mod:`avocado.utils.cloudinit` now allows for a finer grained
usage of the functionality in
:class:`avocado.utils.cloudinit.PhoneHomeServer`.

* The :mod:`avocado.utils.network.ports` fixed some wrong premises
regarding the availability of open ports for different protocols
(such as a free TCP versus a free UDP port).

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

* Modernization of Python code with a switch to f-strings.

* A :class:`avocado.core.nrunner.Task`'s set of requirements are now
*called *dependencies** instead.

* The dependencies of a :class:`avocado.core.nrunner.Task` are now
tracked on the more suitable
:class:`avocado.core.task.runtime.RuntimeTask`.

* SRPMs for packit builds are now built in COPR.

---

Page 1 of 5