Skip to main content

An engine for storing waivers against test results.

Project description

WaiverDB

logo of WaiverDB

What is WaiverDB

WaiverDB is a companion service to ResultsDB, for recording waivers against test results.

Quick development setup

The fastest way to setting up development environment is to install docker-compose or podman-compose and use make up to provision required containers and use make test to run tests or make coverage to generate and open coverage report.

As alternative to using containers, below are steps to set up development environment on local machine.

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               Deprecated. Use --subject-identifier and
                                   --subject-type instead. Subject for a result to waive.
  -i, --subject-identifier TEXT    Subject identifier for a result to waive.
  -T, --subject-type TEXT          Subject type 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-1.3.0.tar.gz (143.7 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: waiverdb-1.3.0.tar.gz
  • Upload date:
  • Size: 143.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.3 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for waiverdb-1.3.0.tar.gz
Algorithm Hash digest
SHA256 0ef2389d8cddfbe5643b582caed647308237cef4d88d6c1a2eb1bafb30d09059
MD5 5461c05c076091d92e5d3c3aa8b750b1
BLAKE2b-256 d77586f4e38eebda147d6f59cbadc7b1e785464cb57adc7ca1092177ddc1fde9

See more details on using hashes here.

Supported by

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