Skip to main content

An engine for storing waivers against test results.

Project description

# WaiverDB

![logo of WaiverDB](https://pagure.io/waiverdb/raw/master/f/logo.png)

## What is WaiverDB

WaiverDB is a companion service to
[ResultsDB](https://pagure.io/taskotron/resultsdb), for recording waivers
against test results.

## Quick development setup

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>.


## Adjusting configuration

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`.

## Running test suite

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

## Building the docs

You can view the docs locally with::

$ cd docs
$ make html
$ firefox _build/html/index.html

## Viewing published fedmsgs

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 CLI
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.
```

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

waiverdb-0.11.0.tar.gz (130.2 kB view details)

Uploaded Source

File details

Details for the file waiverdb-0.11.0.tar.gz.

File metadata

  • Download URL: waiverdb-0.11.0.tar.gz
  • Upload date:
  • Size: 130.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for waiverdb-0.11.0.tar.gz
Algorithm Hash digest
SHA256 7be39b8fefe5e47d751d8b0f4a930ceae1eb6352f78ffc9873bc712be6325435
MD5 5c9cd2c5723b2ee7e39ead970d85117b
BLAKE2b-256 f6d36c331ee5c91011915b1a57dcfd3bb0802a5adff3a0106d093d154e25e221

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page