.. _functional-tests: =================== Functional tests =================== The functional tests run against a live Designate, making real requests and verifying they were successful. Installation ============ 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 . Configuration ============= 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: :: [identity] # optionally override the url from the service catalog # designate_override_url = http://designate.example.com # Replace these with values that represent your identity configuration uri = http://localhost:5000/v2.0 uri_v3 = http://localhost:5000/v3 auth_version = v2 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 [noauth] # set this to True to run against designate in noauth mode use_noauth = False designate_endpoint = http://127.0.0.1:9001 tenant_id = demo alt_tenant_id = alt_demo admin_tenant_id = admin [designate] # the tests will verify changes propagate out to these nameservers nameservers = 127.0.0.1:53,127.0.0.2:53 [testconfig] # 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