tests.py 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. from django.test import SimpleTestCase, ignore_warnings, override_settings
  2. from django.test.utils import require_jinja2
  3. from django.utils.deprecation import RemovedInDjango110Warning
  4. @override_settings(
  5. ROOT_URLCONF='shortcuts.urls',
  6. )
  7. class ShortcutTests(SimpleTestCase):
  8. def test_render_to_response(self):
  9. response = self.client.get('/render_to_response/')
  10. self.assertEqual(response.status_code, 200)
  11. self.assertEqual(response.content, b'FOO.BAR..\n')
  12. self.assertEqual(response['Content-Type'], 'text/html; charset=utf-8')
  13. def test_render_to_response_with_multiple_templates(self):
  14. response = self.client.get('/render_to_response/multiple_templates/')
  15. self.assertEqual(response.status_code, 200)
  16. self.assertEqual(response.content, b'FOO.BAR..\n')
  17. @ignore_warnings(category=RemovedInDjango110Warning)
  18. def test_render_to_response_with_request_context(self):
  19. response = self.client.get('/render_to_response/request_context/')
  20. self.assertEqual(response.status_code, 200)
  21. self.assertEqual(response.content, b'FOO.BAR../render_to_response/request_context/\n')
  22. self.assertEqual(response['Content-Type'], 'text/html; charset=utf-8')
  23. def test_render_to_response_with_content_type(self):
  24. response = self.client.get('/render_to_response/content_type/')
  25. self.assertEqual(response.status_code, 200)
  26. self.assertEqual(response.content, b'FOO.BAR..\n')
  27. self.assertEqual(response['Content-Type'], 'application/x-rendertest')
  28. def test_render_to_response_with_status(self):
  29. response = self.client.get('/render_to_response/status/')
  30. self.assertEqual(response.status_code, 403)
  31. self.assertEqual(response.content, b'FOO.BAR..\n')
  32. @require_jinja2
  33. def test_render_to_response_with_using(self):
  34. response = self.client.get('/render_to_response/using/')
  35. self.assertEqual(response.content, b'DTL\n')
  36. response = self.client.get('/render_to_response/using/?using=django')
  37. self.assertEqual(response.content, b'DTL\n')
  38. response = self.client.get('/render_to_response/using/?using=jinja2')
  39. self.assertEqual(response.content, b'Jinja2\n')
  40. @ignore_warnings(category=RemovedInDjango110Warning)
  41. def test_render_to_response_with_context_instance_misuse(self):
  42. """
  43. For backwards-compatibility, ensure that it's possible to pass a
  44. RequestContext instance in the dictionary argument instead of the
  45. context_instance argument.
  46. """
  47. response = self.client.get('/render_to_response/context_instance_misuse/')
  48. self.assertContains(response, 'context processor output')
  49. def test_render(self):
  50. response = self.client.get('/render/')
  51. self.assertEqual(response.status_code, 200)
  52. self.assertEqual(response.content, b'FOO.BAR../render/\n')
  53. self.assertEqual(response['Content-Type'], 'text/html; charset=utf-8')
  54. self.assertFalse(hasattr(response.context.request, 'current_app'))
  55. def test_render_with_multiple_templates(self):
  56. response = self.client.get('/render/multiple_templates/')
  57. self.assertEqual(response.status_code, 200)
  58. self.assertEqual(response.content, b'FOO.BAR../render/multiple_templates/\n')
  59. @ignore_warnings(category=RemovedInDjango110Warning)
  60. def test_render_with_base_context(self):
  61. response = self.client.get('/render/base_context/')
  62. self.assertEqual(response.status_code, 200)
  63. self.assertEqual(response.content, b'FOO.BAR..\n')
  64. self.assertEqual(response['Content-Type'], 'text/html; charset=utf-8')
  65. def test_render_with_content_type(self):
  66. response = self.client.get('/render/content_type/')
  67. self.assertEqual(response.status_code, 200)
  68. self.assertEqual(response.content, b'FOO.BAR../render/content_type/\n')
  69. self.assertEqual(response['Content-Type'], 'application/x-rendertest')
  70. def test_render_with_status(self):
  71. response = self.client.get('/render/status/')
  72. self.assertEqual(response.status_code, 403)
  73. self.assertEqual(response.content, b'FOO.BAR../render/status/\n')
  74. @require_jinja2
  75. def test_render_with_using(self):
  76. response = self.client.get('/render/using/')
  77. self.assertEqual(response.content, b'DTL\n')
  78. response = self.client.get('/render/using/?using=django')
  79. self.assertEqual(response.content, b'DTL\n')
  80. response = self.client.get('/render/using/?using=jinja2')
  81. self.assertEqual(response.content, b'Jinja2\n')