test_uiviews.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. from copy import copy
  2. from django.core.urlresolvers import reverse
  3. from django.http import JsonResponse
  4. from django.test import TestCase
  5. from misago.admin.testutils import AdminTestCase
  6. from misago.users.models import AnonymousUser
  7. from misago.core import uiviews
  8. class UIViewDecoratorTests(TestCase):
  9. def setUp(self):
  10. self._ui_views = copy(uiviews.UI_VIEWS)
  11. def tearDown(self):
  12. uiviews.UI_VIEWS = self._ui_views
  13. def test_decorator(self):
  14. """decorator registers view in UI"""
  15. @uiviews.uiview('bigkahunaburger')
  16. def fakey_view(request):
  17. return {'is_tests': True}
  18. for name, view in uiviews.UI_VIEWS:
  19. if name == 'bigkahunaburger' and view == fakey_view:
  20. break
  21. else:
  22. self.fail("uiviews.uiview decorator didn't register uiview")
  23. class UIServerTests(TestCase):
  24. def test_server_response(self):
  25. """UI Server returns JSON Response for valid request"""
  26. headers = {
  27. 'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest',
  28. 'HTTP_REFERER': 'http://test.com/',
  29. 'HTTP_HOST': 'test.com',
  30. }
  31. response = self.client.get(reverse('misago:ui_server'),
  32. **headers)
  33. self.assertTrue(isinstance(response, JsonResponse))
  34. self.assertEqual(response.status_code, 200)
  35. class AuthenticatedUIServerTests(AdminTestCase):
  36. def test_server_response(self):
  37. """UI Server returns JSON Response for authenticated request"""
  38. headers = {
  39. 'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest',
  40. 'HTTP_REFERER': 'http://test.com/',
  41. 'HTTP_HOST': 'test.com',
  42. }
  43. response = self.client.get(reverse('misago:ui_server'),
  44. **headers)
  45. self.assertTrue(isinstance(response, JsonResponse))
  46. self.assertEqual(response.status_code, 200)