
The tests use contextlib.nested for nesting multiple with statements, but that function generates a warning in python 2.7 telling us, that there is a better syntax for it. Unfortunately, we need to support older python versions, so we can't use that new syntax. The warning is annoying, as it clobbers the output of tests and makes other warnings harder to see. This patch silences that warning in tests. Change-Id: I6e49faad4c45c13ee2e0041fe9d31b7fcd3670a6
83 lines
3.1 KiB
Python
83 lines
3.1 KiB
Python
#
|
|
# 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 os
|
|
import warnings
|
|
|
|
from django.core.handlers import wsgi
|
|
from django.utils import unittest
|
|
|
|
from openstack_dashboard.test import helpers as openstack_dashboard_helpers
|
|
from tuskar_ui.test.test_data import utils as test_data_utils
|
|
|
|
|
|
# Makes output of failing mox tests much easier to read.
|
|
wsgi.WSGIRequest.__repr__ = lambda self: "<class 'django.http.HttpRequest'>"
|
|
|
|
# Silences the warning about with statements.
|
|
warnings.filterwarnings('ignore', 'With-statements now directly support '
|
|
'multiple context managers', DeprecationWarning,
|
|
r'^tuskar_ui[.].*[._]tests$')
|
|
|
|
|
|
def create_stubs(stubs_to_create={}):
|
|
return openstack_dashboard_helpers.create_stubs(stubs_to_create)
|
|
|
|
|
|
@unittest.skipIf(os.environ.get('SKIP_UNITTESTS', False),
|
|
"The SKIP_UNITTESTS env variable is set.")
|
|
class TestCase(openstack_dashboard_helpers.TestCase):
|
|
"""Specialized base test case class for Horizon which gives access to
|
|
numerous additional features:
|
|
|
|
* A full suite of test data through various attached objects and
|
|
managers (e.g. ``self.servers``, ``self.user``, etc.). See the
|
|
docs for :class:`~horizon.tests.test_data.utils.TestData` for more
|
|
information.
|
|
* The ``mox`` mocking framework via ``self.mox``.
|
|
* A set of request context data via ``self.context``.
|
|
* A ``RequestFactory`` class which supports Django's ``contrib.messages``
|
|
framework via ``self.factory``.
|
|
* A ready-to-go request object via ``self.request``.
|
|
* The ability to override specific time data controls for easier testing.
|
|
* Several handy additional assertion methods.
|
|
"""
|
|
def setUp(self):
|
|
super(TestCase, self).setUp()
|
|
|
|
# load tuskar-specific test data
|
|
test_data_utils.load_test_data(self)
|
|
|
|
|
|
class BaseAdminViewTests(openstack_dashboard_helpers.BaseAdminViewTests):
|
|
"""A ``TestCase`` subclass which sets an active user with the "admin" role
|
|
for testing admin-only views and functionality.
|
|
"""
|
|
def setUp(self):
|
|
super(BaseAdminViewTests, self).setUp()
|
|
|
|
# load tuskar-specific test data
|
|
test_data_utils.load_test_data(self)
|
|
|
|
|
|
class APITestCase(openstack_dashboard_helpers.APITestCase):
|
|
"""The ``APITestCase`` class is for use with tests which deal with the
|
|
underlying clients rather than stubbing out the
|
|
openstack_dashboard.api.* methods.
|
|
"""
|
|
def setUp(self):
|
|
super(APITestCase, self).setUp()
|
|
|
|
# load tuskar-specfic test data
|
|
test_data_utils.load_test_data(self)
|