Functional tests

The functional tests run against a live Designate, making real requests and verifying they were successful.


The functional tests are written using tempest-lib. All the dependencies should be in the requirements files:

cd designate
pip install -r requirements.txt -r test-requirements.txt
pip install -e .


The Tempest tests require a config file. The config specifies the keystone endpoint to authenticate against, or to run in noauth mode against a Designate without keystone.

Set the TEMPEST_CONFIG environment variable to specify where the config file is:

export TEMPEST_CONFIG=tempest.conf

The config file should look like the following:

# optionally override the url from the service catalog
# designate_override_url =

# Replace these with values that represent your identity configuration
uri = http://localhost:5000/v2.0
uri_v3 = http://localhost:5000/v3
auth_version = 3
region = RegionOne

username = demo
tenant_name = demo
password = password
domain_name = Default

alt_username = alt_demo
alt_tenant_name = alt_demo
alt_password = password
alt_domain_name = Default

admin_username = admin
admin_tenant_name = admin
admin_password = password
admin_domain_name = Default

# set this to True to run against designate in noauth mode
use_noauth = False
designate_endpoint =
tenant_id = demo
alt_tenant_id = alt_demo
admin_tenant_id = admin

# the tests will verify changes propagate out to these nameservers
nameservers =,

# Specify how build the path for the request. This will be appended
# directly to the url from the service catalog (or the override url).
#     {tenant_id} - the tenant id
#     {tenant_name} - the tenant name
#     {user} - the username of the tenant
#     {user_id} - the user_id of the tenant
#     {path} - the versionless resource path, e.g. /zones/ID"),
v2_path_pattern = '/v2/{path}'
# if true, skip doing admin actions like increasing quotas in test setups
no_admin_setup = False

Running the tests

Make sure to set the TEMPEST_CONFIG environment variable to point to your test config file.

Then run the tests with tox (you may need to pip install tox):

tox -e functional