test_engine.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import os
  2. from django.template import Context
  3. from django.template.engine import Engine
  4. from django.test import SimpleTestCase
  5. from .utils import ROOT, TEMPLATE_DIR
  6. OTHER_DIR = os.path.join(ROOT, 'other_templates')
  7. class RenderToStringTest(SimpleTestCase):
  8. def setUp(self):
  9. self.engine = Engine(dirs=[TEMPLATE_DIR])
  10. def test_basic_context(self):
  11. self.assertEqual(
  12. self.engine.render_to_string('test_context.html', {'obj': 'test'}),
  13. 'obj:test\n',
  14. )
  15. class LoaderTests(SimpleTestCase):
  16. def test_origin(self):
  17. engine = Engine(dirs=[TEMPLATE_DIR], debug=True)
  18. template = engine.get_template('index.html')
  19. self.assertEqual(template.origin.template_name, 'index.html')
  20. def test_loader_priority(self):
  21. """
  22. #21460 -- Check that the order of template loader works.
  23. """
  24. loaders = [
  25. 'django.template.loaders.filesystem.Loader',
  26. 'django.template.loaders.app_directories.Loader',
  27. ]
  28. engine = Engine(dirs=[OTHER_DIR, TEMPLATE_DIR], loaders=loaders)
  29. template = engine.get_template('priority/foo.html')
  30. self.assertEqual(template.render(Context()), 'priority\n')
  31. def test_cached_loader_priority(self):
  32. """
  33. Check that the order of template loader works. Refs #21460.
  34. """
  35. loaders = [
  36. ('django.template.loaders.cached.Loader', [
  37. 'django.template.loaders.filesystem.Loader',
  38. 'django.template.loaders.app_directories.Loader',
  39. ]),
  40. ]
  41. engine = Engine(dirs=[OTHER_DIR, TEMPLATE_DIR], loaders=loaders)
  42. template = engine.get_template('priority/foo.html')
  43. self.assertEqual(template.render(Context()), 'priority\n')
  44. template = engine.get_template('priority/foo.html')
  45. self.assertEqual(template.render(Context()), 'priority\n')