85 lines
2.3 KiB
Python
85 lines
2.3 KiB
Python
# Copyright 2015 kornicameister@gmail.com
|
|
# Copyright 2015-2017 FUJITSU LIMITED
|
|
#
|
|
# 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.
|
|
|
|
import falcon
|
|
from falcon import testing
|
|
from oslo_config import cfg
|
|
from oslo_config import fixture as oo_cfg
|
|
from oslo_context import fixture as oo_ctx
|
|
from oslotest import base as oslotest_base
|
|
|
|
from monasca_api.api.core import request
|
|
|
|
|
|
class MockedAPI(falcon.API):
|
|
"""MockedAPI
|
|
|
|
Subclasses :py:class:`falcon.API` in order to overwrite
|
|
request_type property with custom :py:class:`request.Request`
|
|
|
|
"""
|
|
|
|
def __init__(self):
|
|
super(MockedAPI, self).__init__(
|
|
media_type=falcon.DEFAULT_MEDIA_TYPE,
|
|
request_type=request.Request,
|
|
response_type=falcon.Response,
|
|
middleware=None,
|
|
router=None
|
|
)
|
|
|
|
|
|
class ConfigFixture(oo_cfg.Config):
|
|
"""Mocks configuration"""
|
|
|
|
def __init__(self):
|
|
super(ConfigFixture, self).__init__(cfg.CONF)
|
|
|
|
def setUp(self):
|
|
super(ConfigFixture, self).setUp()
|
|
|
|
|
|
class BaseTestCase(oslotest_base.BaseTestCase):
|
|
|
|
def setUp(self):
|
|
super(BaseTestCase, self).setUp()
|
|
self.useFixture(ConfigFixture())
|
|
self.useFixture(oo_ctx.ClearRequestContext())
|
|
|
|
@staticmethod
|
|
def conf_override(**kw):
|
|
"""Override flag variables for a test."""
|
|
group = kw.pop('group', None)
|
|
for k, v in kw.items():
|
|
cfg.CONF.set_override(k, v, group)
|
|
|
|
@staticmethod
|
|
def conf_default(**kw):
|
|
"""Override flag variables for a test."""
|
|
group = kw.pop('group', None)
|
|
for k, v in kw.items():
|
|
cfg.CONF.set_default(k, v, group)
|
|
|
|
|
|
class BaseApiTestCase(BaseTestCase, testing.TestBase):
|
|
api_class = MockedAPI
|
|
|
|
@staticmethod
|
|
def create_environ(*args, **kwargs):
|
|
return testing.create_environ(
|
|
*args,
|
|
**kwargs
|
|
)
|