WaiverDB is a companion service to ResultsDB, for recording waivers against test results.
Install dependencies:
$ sudo dnf builddep waiverdb.spec
Configure Postgres on the local machine, with a waiverdb
database:
$ sudo dnf install postgresql-server $ sudo postgresql-setup --initdb $ sudo systemctl enable --now postgresql $ sudo -u postgres createuser --superuser $USER $ createdb waiverdb
Create a local configuration file:
$ cp conf/settings.py.example conf/settings.py
Populate the database:
$ PYTHONPATH=. DEV=true python3 waiverdb/manage.py db upgrade
Run the server:
$ PYTHONPATH=. DEV=true python3 waiverdb/manage.py run -h localhost -p 5004 --debugger
The server is now running at http://localhost:5004 and API calls can be sent to
http://localhost:5004/api/v1.0. All data is stored in the waiverdb
Postgres
database on the local machine. You can verify the server is running correctly
by visiting http://localhost:5004/api/v1.0/about.
You can configure this app by copying conf/settings.py.example
into
conf/settings.py
and adjusting values as you see fit. It overrides default
values in waiverdb/config.py
.
You can run this test suite with the following command::
$ py.test-3 tests/
The test suite will drop and re-create a Postgres database named
waiverdb_test
. By default, it expects to have superuser access to Postgres on
the local machine.
To test against all supported versions of Python, you can use tox::
$ sudo dnf install python3-tox $ tox
You can view the docs locally with::
$ cd docs $ make html $ firefox _build/html/index.html
You can view fedmsgs published when new waivers get created by doing::
$ fedmsg-relay --config-filename fedmsg.d/config.py & $ fedmsg-tail --config fedmsg.d/config.py --no-validate --really-pretty
WaiverDB has a command-line client interface for creating new waivers against test
results. A sample configuration is installed as /usr/share/doc/waiverdb/client.conf.example
.
Copy it to /etc/waiverdb/client.conf
and edit it there. Or you can use --config-file
to specify one.
Usage: waiverdb-cli [OPTIONS] Creates new waivers against test results. Examples: waiverdb-cli -r 47 -r 48 -p "fedora-28" -c "This is fine" or waiverdb-cli -t dist.rpmdeplint -s '{"item": "qclib-1.3.1-3.fc28", "type": "koji_build"}' -p "fedora-28" -c "This is expected for non-x86 packages" Options: -C, --config-file PATH Specify a config file to use -r, --result-id INTEGER Specify one or more results to be waived -s, --subject TEXT Specify one subject for a result to waive -t, --testcase TEXT Specify a testcase for the subject -p, --product-version TEXT Specify one of PDC's product version identifiers. --waived / --no-waived Whether or not the result is waived -c, --comment TEXT A comment explaining why the result is waived -h, --help Show this message and exit.