Allow base_uri override for tests
Made some changes to make the api base_uri code easier to test and standardized the implementation. Change-Id: Ie2fc0dda13e455dc2cda10c4e09fb58e549c229f
This commit is contained in:
parent
825e01a359
commit
7ef4c01e02
designate
@ -18,13 +18,10 @@ from designate import exceptions
|
||||
from designate.objects.adapters import base
|
||||
from designate.objects import base as ovoobj_base
|
||||
|
||||
|
||||
cfg.CONF.import_opt('api_base_uri', 'designate.api', group='service:api')
|
||||
cfg.CONF.import_opt('enable_host_header', 'designate.api', group='service:api')
|
||||
CONF = cfg.CONF
|
||||
|
||||
|
||||
class APIv2Adapter(base.DesignateAdapter):
|
||||
BASE_URI = cfg.CONF['service:api'].api_base_uri.rstrip('/')
|
||||
ADAPTER_FORMAT = 'API_v2'
|
||||
|
||||
#####################
|
||||
@ -75,13 +72,9 @@ class APIv2Adapter(base.DesignateAdapter):
|
||||
|
||||
@classmethod
|
||||
def _get_base_url(cls, request):
|
||||
if cfg.CONF['service:api'].enable_host_header:
|
||||
try:
|
||||
return request.host_url
|
||||
except Exception:
|
||||
return cls.BASE_URI
|
||||
else:
|
||||
return cls.BASE_URI
|
||||
if CONF['service:api'].enable_host_header:
|
||||
return request.host_url
|
||||
return CONF['service:api'].api_base_uri.rstrip('/')
|
||||
|
||||
@classmethod
|
||||
def _get_resource_links(cls, obj, request):
|
||||
@ -110,12 +103,12 @@ class APIv2Adapter(base.DesignateAdapter):
|
||||
params = request.GET
|
||||
|
||||
# defined in etc/designate/designate.conf.sample
|
||||
limit = cfg.CONF['service:api'].default_limit_v2
|
||||
limit = CONF['service:api'].default_limit_v2
|
||||
|
||||
if 'limit' in params:
|
||||
limit = params['limit']
|
||||
if limit.lower() == 'max':
|
||||
limit = cfg.CONF['service:api'].max_limit_v2
|
||||
limit = CONF['service:api'].max_limit_v2
|
||||
else:
|
||||
try:
|
||||
limit = int(limit)
|
||||
|
@ -36,14 +36,17 @@ class APIv2AdapterTest(oslotest.base.BaseTestCase):
|
||||
|
||||
def test_get_base_url(self):
|
||||
CONF.set_override('enable_host_header', False, 'service:api')
|
||||
CONF.set_override(
|
||||
'api_base_uri', 'http://192.0.2.1:9001/', 'service:api'
|
||||
)
|
||||
|
||||
mock_request = mock.Mock()
|
||||
mock_request.GET = {'foo': 'bar'}
|
||||
mock_request.host_url = 'http://127.0.0.1'
|
||||
mock_request.host_url = 'http://192.0.2.2'
|
||||
mock_request.path = '/v2/zones'
|
||||
|
||||
base_url = base.APIv2Adapter._get_base_url(mock_request)
|
||||
self.assertEqual('http://127.0.0.1:9001', base_url)
|
||||
self.assertEqual('http://192.0.2.1:9001', base_url)
|
||||
|
||||
def test_get_base_url_enable_host_header(self):
|
||||
CONF.set_override('enable_host_header', True, 'service:api')
|
||||
@ -56,18 +59,6 @@ class APIv2AdapterTest(oslotest.base.BaseTestCase):
|
||||
base_url = base.APIv2Adapter._get_base_url(mock_request)
|
||||
self.assertEqual('http://192.0.2.1', base_url)
|
||||
|
||||
def test_get_base_url_enable_host_header_exception_raised(self):
|
||||
CONF.set_override('enable_host_header', True, 'service:api')
|
||||
|
||||
mock_host_url = mock.PropertyMock(side_effect=Exception)
|
||||
mock_request = mock.Mock()
|
||||
mock_request.GET = {'foo': 'bar'}
|
||||
type(mock_request).host_url = mock_host_url
|
||||
mock_request.path = '/v2/zones'
|
||||
|
||||
base_url = base.APIv2Adapter._get_base_url(mock_request)
|
||||
self.assertEqual('http://127.0.0.1:9001', base_url)
|
||||
|
||||
|
||||
class RecordAPIv2AdapterTest(oslotest.base.BaseTestCase):
|
||||
def test_parse_object(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user