Merge "Add more Horizon unit tests."
This commit is contained in:
commit
258e9b4653
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
from django.conf import settings # noqa
|
from django.conf import settings # noqa
|
||||||
from django.contrib.auth.models import User # noqa
|
from django.contrib.auth.models import User # noqa
|
||||||
|
from django.core.exceptions import ImproperlyConfigured # noqa
|
||||||
from django.core import urlresolvers
|
from django.core import urlresolvers
|
||||||
from django.utils.importlib import import_module # noqa
|
from django.utils.importlib import import_module # noqa
|
||||||
|
|
||||||
|
@ -192,6 +193,18 @@ class HorizonTests(BaseHorizonTests):
|
||||||
self.assertEqual(tigers._registered_with, cats)
|
self.assertEqual(tigers._registered_with, cats)
|
||||||
self.assertEqual(tigers.get_absolute_url(), "/cats/tigers/")
|
self.assertEqual(tigers.get_absolute_url(), "/cats/tigers/")
|
||||||
|
|
||||||
|
def test_panel_without_slug_fails(self):
|
||||||
|
class InvalidPanel(horizon.Panel):
|
||||||
|
name = 'Invalid'
|
||||||
|
|
||||||
|
self.assertRaises(ImproperlyConfigured, InvalidPanel)
|
||||||
|
|
||||||
|
def test_registry_without_registerable_class_attr_fails(self):
|
||||||
|
class InvalidRegistry(base.Registry):
|
||||||
|
pass
|
||||||
|
|
||||||
|
self.assertRaises(ImproperlyConfigured, InvalidRegistry)
|
||||||
|
|
||||||
def test_index_url_name(self):
|
def test_index_url_name(self):
|
||||||
cats = horizon.get_dashboard("cats")
|
cats = horizon.get_dashboard("cats")
|
||||||
tigers = cats.get_panel("tigers")
|
tigers = cats.get_panel("tigers")
|
||||||
|
@ -296,6 +309,48 @@ class HorizonTests(BaseHorizonTests):
|
||||||
settings.SECURE_PROXY_SSL_HEADER = None
|
settings.SECURE_PROXY_SSL_HEADER = None
|
||||||
|
|
||||||
|
|
||||||
|
class GetUserHomeTests(BaseHorizonTests):
|
||||||
|
"""Test get_user_home parameters."""
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.orig_user_home = settings.HORIZON_CONFIG['user_home']
|
||||||
|
super(BaseHorizonTests, self).setUp()
|
||||||
|
self.original_username = "testname"
|
||||||
|
self.test_user = User()
|
||||||
|
self.test_user.username = self.original_username
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
settings.HORIZON_CONFIG['user_home'] = self.orig_user_home
|
||||||
|
conf.HORIZON_CONFIG._setup()
|
||||||
|
|
||||||
|
def test_using_callable(self):
|
||||||
|
def fancy_user_fnc(user):
|
||||||
|
return user.username.upper()
|
||||||
|
|
||||||
|
settings.HORIZON_CONFIG['user_home'] = fancy_user_fnc
|
||||||
|
conf.HORIZON_CONFIG._setup()
|
||||||
|
|
||||||
|
self.assertEqual(self.test_user.username.upper(),
|
||||||
|
base.Horizon.get_user_home(self.test_user))
|
||||||
|
|
||||||
|
def test_using_module_function(self):
|
||||||
|
module_func = 'django.utils.html.strip_tags'
|
||||||
|
settings.HORIZON_CONFIG['user_home'] = module_func
|
||||||
|
conf.HORIZON_CONFIG._setup()
|
||||||
|
|
||||||
|
self.test_user.username = '<ignore>testname<ignore>'
|
||||||
|
self.assertEqual(self.original_username,
|
||||||
|
base.Horizon.get_user_home(self.test_user))
|
||||||
|
|
||||||
|
def test_using_url(self):
|
||||||
|
fixed_url = "/url"
|
||||||
|
settings.HORIZON_CONFIG['user_home'] = fixed_url
|
||||||
|
conf.HORIZON_CONFIG._setup()
|
||||||
|
|
||||||
|
self.assertEqual(fixed_url,
|
||||||
|
base.Horizon.get_user_home(self.test_user))
|
||||||
|
|
||||||
|
|
||||||
class CustomPanelTests(BaseHorizonTests):
|
class CustomPanelTests(BaseHorizonTests):
|
||||||
|
|
||||||
"""Test customization of dashboards and panels
|
"""Test customization of dashboards and panels
|
||||||
|
|
|
@ -19,6 +19,9 @@ import datetime
|
||||||
|
|
||||||
from django.conf import settings # noqa
|
from django.conf import settings # noqa
|
||||||
|
|
||||||
|
from django.http import HttpResponse # noqa
|
||||||
|
from django.http import HttpResponseRedirect # noqa
|
||||||
|
|
||||||
from horizon import exceptions
|
from horizon import exceptions
|
||||||
from horizon import middleware
|
from horizon import middleware
|
||||||
from horizon.test import helpers as test
|
from horizon.test import helpers as test
|
||||||
|
@ -49,3 +52,20 @@ class MiddlewareTests(test.TestCase):
|
||||||
resp = mw.process_request(request)
|
resp = mw.process_request(request)
|
||||||
self.assertEqual(resp.status_code, 302)
|
self.assertEqual(resp.status_code, 302)
|
||||||
self.assertEqual(resp.get('Location'), response_url)
|
self.assertEqual(resp.get('Location'), response_url)
|
||||||
|
|
||||||
|
def test_process_response_redirect_on_ajax_request(self):
|
||||||
|
url = settings.LOGIN_URL
|
||||||
|
mw = middleware.HorizonMiddleware()
|
||||||
|
|
||||||
|
request = self.factory.post(url,
|
||||||
|
HTTP_X_REQUESTED_WITH='XMLHttpRequest')
|
||||||
|
request.META['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest'
|
||||||
|
request.horizon = {'async_messages':
|
||||||
|
[('error', 'error_msg', 'extra_tag')]}
|
||||||
|
|
||||||
|
response = HttpResponseRedirect(url)
|
||||||
|
response.client = self.client
|
||||||
|
|
||||||
|
resp = mw.process_response(request, response)
|
||||||
|
self.assertEqual(resp.status_code, 200)
|
||||||
|
self.assertEqual(resp['X-Horizon-Location'], url)
|
||||||
|
|
Loading…
Reference in New Issue