designate/contrib/tempest/dns_tests/base.py
ravikumar-venkatesan cf8322e544 Designate API tests for Tempest Framework
Creates a new folder 'tempest' under 'designate/contrib' as a
placeholder for Designate API tests.
This submission implements CRUD operations on 'domains', 'records'
and 'servers' of Designate Api.
Adds related JSON supporting methods in client files
'domains_client.py', 'records_client.py', and 'server_client.py'
Also implemented schema validation for all the operations under
'domains.py', 'parameter_types.py', 'records.py', 'servers.py' files.
Modified 'tempest.conf.sample', 'config.py' , and 'clients.py' to
add parameters for enabling designate service.

Change-Id: I5fcac06200ce534a9cddf1e7ed9393ae5124a681
2014-07-30 11:44:27 +00:00

65 lines
2.3 KiB
Python

# Copyright 2014 Hewlett-Packard Development Company, L.P
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from tempest import clients
from tempest import config
from tempest import exceptions
from tempest.openstack.common import log as logging
import tempest.test
CONF = config.CONF
LOG = logging.getLogger(__name__)
class BaseDnsTest(tempest.test.BaseTestCase):
"""Base test case class for all Dns API tests."""
_interface = 'json'
force_tenant_isolation = False
@classmethod
def setUpClass(cls):
super(BaseDnsTest, cls).setUpClass()
if not CONF.service_available.designate:
skip_msg = ("%s skipped as designate is not available"
% cls.__name__)
raise cls.skipException(skip_msg)
os = cls.get_client_manager()
cls.os = os
cls.dns_domains_client = cls.os.dns_domains_client
cls.dns_records_client = cls.os.dns_records_client
class BaseDnsAdminTest(BaseDnsTest):
"""Base test case class for Dns Admin API tests."""
_interface = "json"
@classmethod
def setUpClass(cls):
super(BaseDnsAdminTest, cls).setUpClass()
if (CONF.compute.allow_tenant_isolation or
cls.force_tenant_isolation is True):
creds = cls.isolated_creds.get_admin_creds()
cls.os_adm = clients.Manager(credentials=creds,
interface=cls._interface)
else:
try:
cls.os_adm = clients.DnsAdminManager(
interface=cls._interface)
except exceptions.InvalidCredentials:
msg = ("Missing Dns Admin API credentials "
"in configuration.")
raise cls.skipException(msg)