Merge "Make test helpers properly inheritable/extendable"
This commit is contained in:
commit
59c57a16f0
|
@ -118,18 +118,32 @@ class TestCase(django_test.TestCase):
|
|||
* A ready-to-go request object via ``self.request``.
|
||||
"""
|
||||
def setUp(self):
|
||||
super(TestCase, self).setUp()
|
||||
self.mox = mox.Mox()
|
||||
self.factory = RequestFactoryWithMessages()
|
||||
self.user = User.objects.create_user(username='test', password='test')
|
||||
self.assertTrue(self.client.login(username="test", password="test"))
|
||||
|
||||
self.request = http.HttpRequest()
|
||||
self.request.session = self.client._session()
|
||||
self._setup_test_data()
|
||||
self._setup_factory()
|
||||
self._setup_user()
|
||||
self._setup_request()
|
||||
middleware.HorizonMiddleware().process_request(self.request)
|
||||
AuthenticationMiddleware().process_request(self.request)
|
||||
os.environ["HORIZON_TEST_RUN"] = "True"
|
||||
|
||||
def _setup_test_data(self):
|
||||
pass
|
||||
|
||||
def _setup_factory(self):
|
||||
self.factory = RequestFactoryWithMessages()
|
||||
|
||||
def _setup_user(self):
|
||||
self.user = User.objects.create_user(username='test', password='test')
|
||||
self.assertTrue(self.client.login(username="test", password="test"))
|
||||
|
||||
def _setup_request(self):
|
||||
self.request = http.HttpRequest()
|
||||
self.request.session = self.client._session()
|
||||
|
||||
def tearDown(self):
|
||||
super(TestCase, self).tearDown()
|
||||
self.mox.UnsetStubs()
|
||||
self.mox.VerifyAll()
|
||||
del os.environ["HORIZON_TEST_RUN"]
|
||||
|
|
|
@ -24,11 +24,9 @@ import os
|
|||
from ceilometerclient.v2 import client as ceilometer_client
|
||||
from cinderclient import client as cinder_client
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.middleware import AuthenticationMiddleware # noqa
|
||||
from django.contrib.messages.storage import default_storage # noqa
|
||||
from django.core.handlers import wsgi
|
||||
from django.core import urlresolvers
|
||||
from django import http
|
||||
from django.test.client import RequestFactory # noqa
|
||||
from django.test import utils as django_test_utils
|
||||
from django.utils.importlib import import_module # noqa
|
||||
|
@ -49,7 +47,6 @@ from troveclient import client as trove_client
|
|||
|
||||
from horizon import base
|
||||
from horizon import conf
|
||||
from horizon import middleware
|
||||
from horizon.test import helpers as horizon_helpers
|
||||
from openstack_dashboard import api
|
||||
from openstack_dashboard import context_processors
|
||||
|
@ -151,11 +148,6 @@ class TestCase(horizon_helpers.TestCase):
|
|||
* Several handy additional assertion methods.
|
||||
"""
|
||||
def setUp(self):
|
||||
test_utils.load_test_data(self)
|
||||
self.mox = mox.Mox()
|
||||
self.factory = RequestFactoryWithMessages()
|
||||
self.context = {'authorized_tenants': self.tenants.list()}
|
||||
|
||||
def fake_conn_request(*args, **kwargs):
|
||||
raise Exception("An external URI request tried to escape through "
|
||||
"an httplib2 client. Args: %s, kwargs: %s"
|
||||
|
@ -167,6 +159,21 @@ class TestCase(horizon_helpers.TestCase):
|
|||
self._real_context_processor = context_processors.openstack
|
||||
context_processors.openstack = lambda request: self.context
|
||||
|
||||
self.patchers = {}
|
||||
self.add_panel_mocks()
|
||||
|
||||
super(TestCase, self).setUp()
|
||||
|
||||
def _setup_test_data(self):
|
||||
super(TestCase, self)._setup_test_data()
|
||||
test_utils.load_test_data(self)
|
||||
self.context = {'authorized_tenants': self.tenants.list()}
|
||||
|
||||
def _setup_factory(self):
|
||||
# For some magical reason we need a copy of this here.
|
||||
self.factory = RequestFactoryWithMessages()
|
||||
|
||||
def _setup_user(self):
|
||||
self._real_get_user = utils.get_user
|
||||
tenants = self.context['authorized_tenants']
|
||||
self.setActiveUser(id=self.user.id,
|
||||
|
@ -176,14 +183,10 @@ class TestCase(horizon_helpers.TestCase):
|
|||
tenant_id=self.tenant.id,
|
||||
service_catalog=self.service_catalog,
|
||||
authorized_tenants=tenants)
|
||||
self.request = http.HttpRequest()
|
||||
self.request.session = self.client._session()
|
||||
|
||||
def _setup_request(self):
|
||||
super(TestCase, self)._setup_request()
|
||||
self.request.session['token'] = self.token.id
|
||||
middleware.HorizonMiddleware().process_request(self.request)
|
||||
AuthenticationMiddleware().process_request(self.request)
|
||||
self.patchers = {}
|
||||
self.add_panel_mocks()
|
||||
os.environ["HORIZON_TEST_RUN"] = "True"
|
||||
|
||||
def add_panel_mocks(self):
|
||||
"""Global mocks on panels that get called on all views."""
|
||||
|
@ -194,13 +197,11 @@ class TestCase(horizon_helpers.TestCase):
|
|||
self.patchers['aggregates'].start()
|
||||
|
||||
def tearDown(self):
|
||||
self.mox.UnsetStubs()
|
||||
httplib2.Http._conn_request = self._real_conn_request
|
||||
context_processors.openstack = self._real_context_processor
|
||||
utils.get_user = self._real_get_user
|
||||
mock.patch.stopall()
|
||||
self.mox.VerifyAll()
|
||||
del os.environ["HORIZON_TEST_RUN"]
|
||||
super(TestCase, self).tearDown()
|
||||
|
||||
def setActiveUser(self, id=None, token=None, username=None, tenant_id=None,
|
||||
service_catalog=None, tenant_name=None, roles=None,
|
||||
|
|
Loading…
Reference in New Issue