Migrate the "unauthed" tests
This migrates the tests that check for a 401 if a token is not provided in the request headers. Change-Id: I9752685afccee5dcd009f76b5242fd6f12f0fc37
This commit is contained in:
parent
24df485be7
commit
d56330ab97
designate_tempest_plugin
@ -13,6 +13,7 @@
|
||||
# under the License.
|
||||
from tempest import clients
|
||||
from tempest import config
|
||||
from tempest.lib.auth import KeystoneV2AuthProvider
|
||||
|
||||
from designate_tempest_plugin.services.dns.v1.json.domains_client import \
|
||||
DomainsClient
|
||||
@ -49,58 +50,93 @@ CONF = config.CONF
|
||||
|
||||
|
||||
class ManagerV1(clients.Manager):
|
||||
|
||||
def __init__(self, credentials=None, service=None):
|
||||
super(ManagerV1, self).__init__(credentials, service)
|
||||
self._init_clients(self._get_params())
|
||||
|
||||
params = {
|
||||
def _init_clients(self, params):
|
||||
self.domains_client = DomainsClient(**params)
|
||||
self.records_client = RecordsClient(**params)
|
||||
self.servers_client = ServersClient(**params)
|
||||
|
||||
def _get_params(self):
|
||||
params = dict(self.default_params)
|
||||
params.update({
|
||||
'auth_provider': self.auth_provider,
|
||||
'service': CONF.dns.catalog_type,
|
||||
'region': CONF.identity.region,
|
||||
'endpoint_type': CONF.dns.endpoint_type,
|
||||
'build_interval': CONF.dns.build_interval,
|
||||
'build_timeout': CONF.dns.build_timeout
|
||||
}
|
||||
params.update(self.default_params)
|
||||
|
||||
self.domains_client = DomainsClient(self.auth_provider, **params)
|
||||
self.records_client = RecordsClient(self.auth_provider, **params)
|
||||
self.servers_client = ServersClient(self.auth_provider, **params)
|
||||
})
|
||||
return params
|
||||
|
||||
|
||||
class ManagerV2(clients.Manager):
|
||||
|
||||
def __init__(self, credentials=None, service=None):
|
||||
super(ManagerV2, self).__init__(credentials, service)
|
||||
self._init_clients(self._get_params())
|
||||
|
||||
params = {
|
||||
'service': CONF.dns.catalog_type,
|
||||
'region': CONF.identity.region,
|
||||
'endpoint_type': CONF.dns.endpoint_type,
|
||||
'build_interval': CONF.dns.build_interval,
|
||||
'build_timeout': CONF.dns.build_timeout
|
||||
}
|
||||
params.update(self.default_params)
|
||||
def _init_clients(self, params):
|
||||
self.zones_client = ZonesClient(**params)
|
||||
self.zone_imports_client = ZoneImportsClient(**params)
|
||||
self.blacklists_client = BlacklistsClient(**params)
|
||||
self.quotas_client = QuotasClient(**params)
|
||||
self.zone_exports_client = ZoneExportsClient(**params)
|
||||
self.recordset_client = RecordsetClient(**params)
|
||||
self.pool_client = PoolClient(**params)
|
||||
self.tld_client = TldClient(**params)
|
||||
self.transfer_request_client = TransferRequestClient(**params)
|
||||
self.transfer_accept_client = TransferAcceptClient(**params)
|
||||
self.tsigkey_client = TsigkeyClient(**params)
|
||||
|
||||
self.zones_client = ZonesClient(self.auth_provider, **params)
|
||||
self.zone_imports_client = ZoneImportsClient(self.auth_provider,
|
||||
**params)
|
||||
self.blacklists_client = BlacklistsClient(self.auth_provider, **params)
|
||||
self.quotas_client = QuotasClient(self.auth_provider, **params)
|
||||
self.zone_exports_client = ZoneExportsClient(self.auth_provider,
|
||||
**params)
|
||||
self.recordset_client = RecordsetClient(self.auth_provider,
|
||||
**params)
|
||||
self.pool_client = PoolClient(self.auth_provider,
|
||||
**params)
|
||||
self.tld_client = TldClient(self.auth_provider,
|
||||
**params)
|
||||
self.query_client = QueryClient(
|
||||
nameservers=CONF.dns.nameservers,
|
||||
query_timeout=CONF.dns.query_timeout,
|
||||
build_interval=CONF.dns.build_interval,
|
||||
build_timeout=CONF.dns.build_timeout,
|
||||
)
|
||||
self.transfer_request_client = TransferRequestClient(
|
||||
self.auth_provider, **params)
|
||||
self.transfer_accept_client = TransferAcceptClient(
|
||||
self.auth_provider, **params)
|
||||
self.tsigkey_client = TsigkeyClient(
|
||||
self.auth_provider, **params)
|
||||
|
||||
def _get_params(self):
|
||||
params = dict(self.default_params)
|
||||
params.update({
|
||||
'auth_provider': self.auth_provider,
|
||||
'service': CONF.dns.catalog_type,
|
||||
'region': CONF.identity.region,
|
||||
'endpoint_type': CONF.dns.endpoint_type,
|
||||
'build_interval': CONF.dns.build_interval,
|
||||
'build_timeout': CONF.dns.build_timeout
|
||||
})
|
||||
return params
|
||||
|
||||
|
||||
class ManagerV2Unauthed(ManagerV2):
|
||||
|
||||
def __init__(self, credentials=None, service=None):
|
||||
super(ManagerV2Unauthed, self).__init__(credentials, service)
|
||||
self.auth_provider = KeystoneV2UnauthedProvider(
|
||||
credentials=self.auth_provider.credentials,
|
||||
auth_url=self.auth_provider.auth_client.auth_url,
|
||||
disable_ssl_certificate_validation=self.auth_provider.dscv,
|
||||
ca_certs=self.auth_provider.ca_certs,
|
||||
trace_requests=self.auth_provider.trace_requests,
|
||||
)
|
||||
self._init_clients(self._get_params())
|
||||
|
||||
|
||||
class KeystoneV2UnauthedProvider(KeystoneV2AuthProvider):
|
||||
"""This auth provider will ensure requests are made without a token"""
|
||||
|
||||
def _decorate_request(self, filters, method, url, headers=None, body=None,
|
||||
auth_data=None):
|
||||
result = super(KeystoneV2UnauthedProvider, self)._decorate_request(
|
||||
filters, method, url, headers=headers, body=body,
|
||||
auth_data=auth_data)
|
||||
url, headers, body = result
|
||||
try:
|
||||
del headers['X-Auth-Token']
|
||||
except KeyError:
|
||||
pass
|
||||
return url, headers, body
|
||||
|
48
designate_tempest_plugin/tests/api/v2/test_unauthed.py
Normal file
48
designate_tempest_plugin/tests/api/v2/test_unauthed.py
Normal file
@ -0,0 +1,48 @@
|
||||
# Copyright 2016 Rackspace
|
||||
#
|
||||
# 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 oslo_log import log as logging
|
||||
from tempest import test
|
||||
from tempest.lib import decorators
|
||||
from tempest.lib import exceptions as lib_exc
|
||||
import ddt
|
||||
|
||||
from designate_tempest_plugin.tests import base
|
||||
from designate_tempest_plugin.clients import ManagerV2Unauthed
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@ddt.ddt
|
||||
class TestDnsUnauthed(base.BaseDnsV2Test):
|
||||
|
||||
client_manager = ManagerV2Unauthed
|
||||
credentials = ["primary"]
|
||||
|
||||
@classmethod
|
||||
def setup_clients(cls):
|
||||
super(TestDnsUnauthed, cls).setup_clients()
|
||||
cls.zones_client = cls.os.zones_client
|
||||
cls.recordset_client = cls.os.recordset_client
|
||||
cls.tld_client = cls.os.tld_client
|
||||
cls.pool_client = cls.os.pool_client
|
||||
cls.blacklists_client = cls.os.blacklists_client
|
||||
|
||||
@test.attr(type='smoke')
|
||||
@decorators.idempotent_id('0f7a6d20-f6f3-4937-8fe6-7a9851227d98')
|
||||
@ddt.file_data('unauthed_data.json')
|
||||
def test_unauthed(self, client, method, args=None):
|
||||
client = getattr(self, client)
|
||||
method = getattr(client, method)
|
||||
args = args or []
|
||||
self.assertRaises(lib_exc.Unauthorized, method, *args)
|
127
designate_tempest_plugin/tests/api/v2/unauthed_data.json
Normal file
127
designate_tempest_plugin/tests/api/v2/unauthed_data.json
Normal file
@ -0,0 +1,127 @@
|
||||
{
|
||||
"list_zones": {
|
||||
"client": "zones_client",
|
||||
"method": "list_zones"
|
||||
},
|
||||
"show_zone": {
|
||||
"client": "zones_client",
|
||||
"method": "show_zone",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
"create_zone": {
|
||||
"client": "zones_client",
|
||||
"method": "create_zone",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
"update_zone": {
|
||||
"client": "zones_client",
|
||||
"method": "update_zone",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
"delete_zone": {
|
||||
"client": "zones_client",
|
||||
"method": "delete_zone",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
|
||||
"list_recordsets": {
|
||||
"client": "recordset_client",
|
||||
"method": "list_recordset",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
"show_recordset": {
|
||||
"client": "recordset_client",
|
||||
"method": "show_recordset",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90", "6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
"create_recordset": {
|
||||
"client": "recordset_client",
|
||||
"method": "create_recordset",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90", "6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
"update_recordset": {
|
||||
"client": "recordset_client",
|
||||
"method": "update_recordset",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90", "6ef3b7f2-df39-43ef-9f37-ce2bc424ab90", {}]
|
||||
},
|
||||
"delete_recordset": {
|
||||
"client": "recordset_client",
|
||||
"method": "delete_recordset",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90", "6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
|
||||
"list_tlds": {
|
||||
"client": "tld_client",
|
||||
"method": "list_tlds"
|
||||
},
|
||||
"show_tld": {
|
||||
"client": "tld_client",
|
||||
"method": "show_tld",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
"create_tld": {
|
||||
"client": "tld_client",
|
||||
"method": "create_tld",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
"update_tld": {
|
||||
"client": "tld_client",
|
||||
"method": "update_tld",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
"delete_tld": {
|
||||
"client": "tld_client",
|
||||
"method": "delete_tld",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
|
||||
"list_blacklists": {
|
||||
"client": "blacklists_client",
|
||||
"method": "list_blacklists"
|
||||
},
|
||||
"show_blacklist": {
|
||||
"client": "blacklists_client",
|
||||
"method": "show_blacklist",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
"create_blacklist": {
|
||||
"client": "blacklists_client",
|
||||
"method": "create_blacklist",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
"update_blacklist": {
|
||||
"client": "blacklists_client",
|
||||
"method": "update_blacklist",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
"delete_blacklist": {
|
||||
"client": "blacklists_client",
|
||||
"method": "delete_blacklist",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
|
||||
"list_pools": {
|
||||
"client": "pool_client",
|
||||
"method": "list_pools"
|
||||
},
|
||||
"show_pool": {
|
||||
"client": "pool_client",
|
||||
"method": "show_pool",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
"create_pool": {
|
||||
"client": "pool_client",
|
||||
"method": "create_pool",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
"update_pool": {
|
||||
"client": "pool_client",
|
||||
"method": "update_pool",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
},
|
||||
"delete_pool": {
|
||||
"client": "pool_client",
|
||||
"method": "delete_pool",
|
||||
"args": ["6ef3b7f2-df39-43ef-9f37-ce2bc424ab90"]
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user