from copy import copy from django.core.urlresolvers import reverse from django.http import JsonResponse from django.test import TestCase from misago.admin.testutils import AdminTestCase from misago.users.models import AnonymousUser from misago.core import uiviews class UIViewDecoratorTests(TestCase): def setUp(self): self._ui_views = copy(uiviews.UI_VIEWS) def tearDown(self): uiviews.UI_VIEWS = self._ui_views def test_decorator(self): """decorator registers view in UI""" @uiviews.uiview('bigkahunaburger') def fakey_view(request): return {'is_tests': True} for name, view in uiviews.UI_VIEWS: if name == 'bigkahunaburger' and view == fakey_view: break else: self.fail("uiviews.uiview decorator didn't register uiview") class UIServerTests(TestCase): def test_server_response(self): """UI Server returns JSON Response for valid request""" headers = { 'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest', 'HTTP_REFERER': 'http://test.com/', 'HTTP_HOST': 'test.com', } response = self.client.get(reverse('misago:ui_server'), **headers) self.assertTrue(isinstance(response, JsonResponse)) self.assertEqual(response.status_code, 200) class AuthenticatedUIServerTests(AdminTestCase): def test_server_response(self): """UI Server returns JSON Response for authenticated request""" headers = { 'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest', 'HTTP_REFERER': 'http://test.com/', 'HTTP_HOST': 'test.com', } response = self.client.get(reverse('misago:ui_server'), **headers) self.assertTrue(isinstance(response, JsonResponse)) self.assertEqual(response.status_code, 200)