tests.py 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. def test_render_to_response_with_content_type(self):
  18. response = self.client.get('/render_to_response/content_type/')
  19. self.assertEqual(response.status_code, 200)
  20. self.assertEqual(response.content, b'FOO.BAR..\n')
  21. self.assertEqual(response['Content-Type'], 'application/x-rendertest')
  22. def test_render_to_response_with_status(self):
  23. response = self.client.get('/render_to_response/status/')
  24. self.assertEqual(response.status_code, 403)
  25. self.assertEqual(response.content, b'FOO.BAR..\n')
  26. @require_jinja2
  27. def test_render_to_response_with_using(self):
  28. response = self.client.get('/render_to_response/using/')
  29. self.assertEqual(response.content, b'DTL\n')
  30. response = self.client.get('/render_to_response/using/?using=django')
  31. self.assertEqual(response.content, b'DTL\n')
  32. response = self.client.get('/render_to_response/using/?using=jinja2')
  33. self.assertEqual(response.content, b'Jinja2\n')
  34. @ignore_warnings(category=RemovedInDjango110Warning)
  35. def test_render_to_response_with_context_instance_misuse(self):
  36. """
  37. For backwards-compatibility, ensure that it's possible to pass a
  38. RequestContext instance in the dictionary argument instead of the
  39. context_instance argument.
  40. """
  41. response = self.client.get('/render_to_response/context_instance_misuse/')
  42. self.assertContains(response, 'context processor output')
  43. def test_render(self):
  44. response = self.client.get('/render/')
  45. self.assertEqual(response.status_code, 200)
  46. self.assertEqual(response.content, b'FOO.BAR../render/\n')
  47. self.assertEqual(response['Content-Type'], 'text/html; charset=utf-8')
  48. self.assertFalse(hasattr(response.context.request, 'current_app'))
  49. def test_render_with_multiple_templates(self):
  50. response = self.client.get('/render/multiple_templates/')
  51. self.assertEqual(response.status_code, 200)
  52. self.assertEqual(response.content, b'FOO.BAR../render/multiple_templates/\n')
  53. def test_render_with_content_type(self):
  54. response = self.client.get('/render/content_type/')
  55. self.assertEqual(response.status_code, 200)
  56. self.assertEqual(response.content, b'FOO.BAR../render/content_type/\n')
  57. self.assertEqual(response['Content-Type'], 'application/x-rendertest')
  58. def test_render_with_status(self):
  59. response = self.client.get('/render/status/')
  60. self.assertEqual(response.status_code, 403)
  61. self.assertEqual(response.content, b'FOO.BAR../render/status/\n')
  62. @require_jinja2
  63. def test_render_with_using(self):
  64. response = self.client.get('/render/using/')
  65. self.assertEqual(response.content, b'DTL\n')
  66. response = self.client.get('/render/using/?using=django')
  67. self.assertEqual(response.content, b'DTL\n')
  68. response = self.client.get('/render/using/?using=jinja2')
  69. self.assertEqual(response.content, b'Jinja2\n')