Avocado is a set of tools and libraries to help with automated testing. One can call it a test framework with benefits. Native tests are written in Python and they follow the unittest pattern, but any executable can serve as a test.
Describe the bug
Currently, as a convenience, a Runnable instantiated without a config, is given a configuration that matches its kind. Example:
from avocado.core.nrunner.runnable import Runnable
>>> Runnable(kind='noop', uri=None).config
{'runner.identifier_format': '{uri}'}
Also currently, the suite will overwrite a runnable's config with its own.
The problem with this approach is that when a Runnable is used in a Suite with its own configuration, it's not possible to distinguish what was originally an empty configuration (that was turned into the default one).
Steps to reproduce
Create a noop_config.json file such as:
Describe the bug Currently, as a convenience, a
Runnable
instantiated without aconfig
, is given a configuration that matches its kind. Example:Also currently, the suite will overwrite a runnable's config with its own.
The problem with this approach is that when a
Runnable
is used in a Suite with its own configuration, it's not possible to distinguish what was originally an empty configuration (that was turned into the default one).Steps to reproduce Create a
noop_config.json
file such as:Run:
avocado run noop_config.json
Expected behavior The precedence of configuration should be:
For the command above:
Current behavior Currently, the suite will overwrite a runnable's config with its own.
For the command above:
System information (please complete the following information):
LSB Version: :core-5.0-amd64:core-5.0-noarch:cxx-5.0-amd64:cxx-5.0-noarch:desktop-5.0-amd64:desktop-5.0-noarch:languages-5.0-amd64:languages-5.0-noarch:printing-5.0-amd64:printing-5.0-noarch Distributor ID: Fedora Description: Fedora release 40 (Forty) Release: 40 Codename: Forty