|
1 | 1 | import os
|
| 2 | +import posixpath |
2 | 3 | import unittest
|
3 | 4 |
|
4 | 5 | from django.forms.renderers import (
|
5 | 6 | BaseRenderer, DjangoTemplates, Jinja2, TemplatesSetting,
|
6 | 7 | )
|
7 | 8 | from django.test import SimpleTestCase
|
| 9 | +from django.utils.version import get_version_tuple |
8 | 10 |
|
9 | 11 | try:
|
10 | 12 | import jinja2
|
@@ -46,6 +48,28 @@ class Jinja2Tests(SharedTests, SimpleTestCase):
|
46 | 48 | renderer = Jinja2
|
47 | 49 | expected_widget_dir = 'jinja2'
|
48 | 50 |
|
| 51 | + @property |
| 52 | + def jinja2_version(self): |
| 53 | + return get_version_tuple(jinja2.__version__) |
| 54 | + |
| 55 | + def test_installed_apps_template_found(self): |
| 56 | + """Can find a custom template in INSTALLED_APPS.""" |
| 57 | + renderer = self.renderer() |
| 58 | + # Found because forms_tests is . |
| 59 | + tpl = renderer.get_template("forms_tests/custom_widget.html") |
| 60 | + expected_path = os.path.abspath( |
| 61 | + os.path.join(os.path.dirname(__file__), "..", self.expected_widget_dir) |
| 62 | + ) |
| 63 | + if self.jinja2_version < (3, 1): |
| 64 | + expected_path = os.path.join( |
| 65 | + expected_path, "forms_tests", "custom_widget.html" |
| 66 | + ) |
| 67 | + else: |
| 68 | + expected_path = posixpath.join( |
| 69 | + expected_path, "forms_tests", "custom_widget.html" |
| 70 | + ) |
| 71 | + self.assertEqual(tpl.origin.name, expected_path) |
| 72 | + |
49 | 73 |
|
50 | 74 | class TemplatesSettingTests(SharedTests, SimpleTestCase):
|
51 | 75 | renderer = TemplatesSetting
|
0 commit comments