test_context_processors.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. from django.test import TestCase
  2. from .. import context_processors
  3. class MockRequest(object):
  4. path_info = '/'
  5. def __init__(self, secure, host):
  6. self.secure = secure
  7. self.host = host
  8. def is_secure(self):
  9. return self.secure
  10. def get_host(self):
  11. return self.host
  12. class MetaMockRequest(object):
  13. def __init__(self, meta):
  14. self.META = meta
  15. class SiteAddressTests(TestCase):
  16. def test_site_address_for_http(self):
  17. """Correct SITE_ADDRESS set for HTTP request"""
  18. mock_request = MockRequest(False, 'somewhere.com')
  19. self.assertEqual(
  20. context_processors.site_address(mock_request),
  21. {
  22. 'REQUEST_PATH': '/',
  23. 'SITE_ADDRESS': 'http://somewhere.com',
  24. 'SITE_HOST': 'somewhere.com',
  25. 'SITE_PROTOCOL': 'http',
  26. })
  27. def test_site_address_for_https(self):
  28. """Correct SITE_ADDRESS set for HTTPS request"""
  29. mock_request = MockRequest(True, 'somewhere.com')
  30. self.assertEqual(
  31. context_processors.site_address(mock_request),
  32. {
  33. 'REQUEST_PATH': '/',
  34. 'SITE_ADDRESS': 'https://somewhere.com',
  35. 'SITE_HOST': 'somewhere.com',
  36. 'SITE_PROTOCOL': 'https',
  37. })
  38. class FrontendContextTests(TestCase):
  39. def test_frontend_context(self):
  40. """frontend_context is available in templates"""
  41. mock_request = MockRequest(False, 'somewhere.com')
  42. mock_request.include_frontend_context = True
  43. mock_request.frontend_context = {'someValue': 'Something'}
  44. self.assertEqual(
  45. context_processors.frontend_context(mock_request),
  46. {'frontend_context': {'someValue': 'Something'}})
  47. mock_request.include_frontend_context = False
  48. self.assertEqual(context_processors.frontend_context(mock_request), {})