This repository contains tests and images for testing Fedora with OpenQA. For additional tools, Installation Guide and Docker images, see this repository.
See official documentation on basic concept, test development (including API specification), needles specification and supported variables for backend. See this example repo on how tests should be structured.
In short, since OpenQA uses only one entrypoint for all tests (main.pm
), we have decided to utilize
this feature and make tests modular. It means that basic passing through main.pm
(without any variables set)
results in most basic installation test executed. Developer can then customize it with additional variables
(for example by setting PACKAGE_SET=minimal
to do installation only with minimal package set).
Make your test modular, so that it utilizes _boot_to_anaconda()
and _do_install_and_reboot()
tests (that are loaded automatically). Break your test into smaller parts, each dealing with one
specific feature (e. g. partitioning, user creation...) and add their loading into main.pm
based
on reasonable variable setting (so they can be used in other tests also).
Your test can inherit from basetest
, fedorabase
, installedtest
or anacondatest
.
basetest
is basic class provided by os-autoinst - it has empty post_fail_hook()
and doesn't set any flags.fedorabase
doesn't neither set flags nor does anything in post_fail_hook()
, but it provides basic functions
that will be useful during testing Fedora, like console_login()
or boot_to_login_screen()
. It should be used
when no other, more specific class can be used.anacondatest
should be used in tests where Anaconda is running. It uploads Anaconda logs (for example
anaconda.log
or packaging.log
) in post_fail_hook()
. It also provides convenient methods for Anaconda
like select_disks()
.installedtest
should be used in tests that are running on installed system (either in postinstall phase
or in upgrade tests). It uploads /var/log
in post_fail_hook()
.tests/
directory, reimplementing run()
method
and test_flags()
method, inheriting from one of the classes mentioned above.templates
file.conf_test_suites.py
file in openqa_fedora_tools repository.