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.core import uiviews
  7. class UIViewDecoratorTests(TestCase):
  8. def setUp(self):
  9. self._ui_views = copy(uiviews.UI_VIEWS)
  10. def tearDown(self):
  11. uiviews.UI_VIEWS = self._ui_views
  12. def test_decorator(self):
  13. """decorator registers view in UI"""
  14. @uiviews.uiview('bigkahunaburger', 42)
  15. def fakey_view(request):
  16. return {'is_tests': True}
  17. for name, cache_frequency, view in uiviews.UI_VIEWS:
  18. if (name == 'bigkahunaburger' and cache_frequency == 42 and
  19. 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)