summaryrefslogtreecommitdiff
path: root/tests/check_framework
diff options
context:
space:
mode:
authorShreya Bamne <shreya.bamne@gmail.com>2021-08-03 15:20:49 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-10-20 11:15:47 +0200
commit004b4620f6f4ad87261e149898940f2dcd5757ef (patch)
tree233f505d749bbd26208bc5b6236df629942ec5fe /tests/check_framework
parentb98394fa62753c867a287c2839696695557281a5 (diff)
downloaddjango-004b4620f6f4ad87261e149898940f2dcd5757ef.tar.gz
Fixed #32987 -- Added system check for template tag modules with the same name.
Co-authored-by: Daniel Fairhead <daniel@dev.ngo>
Diffstat (limited to 'tests/check_framework')
-rw-r--r--tests/check_framework/template_test_apps/__init__.py0
-rw-r--r--tests/check_framework/template_test_apps/different_tags_app/__init__.py0
-rw-r--r--tests/check_framework/template_test_apps/different_tags_app/apps.py5
-rw-r--r--tests/check_framework/template_test_apps/different_tags_app/templatetags/__init__.py0
-rw-r--r--tests/check_framework/template_test_apps/different_tags_app/templatetags/different_tags.py3
-rw-r--r--tests/check_framework/template_test_apps/same_tags_app_1/__init__.py0
-rw-r--r--tests/check_framework/template_test_apps/same_tags_app_1/apps.py5
-rw-r--r--tests/check_framework/template_test_apps/same_tags_app_1/templatetags/__init__.py0
-rw-r--r--tests/check_framework/template_test_apps/same_tags_app_1/templatetags/same_tags.py3
-rw-r--r--tests/check_framework/template_test_apps/same_tags_app_2/__init__.py0
-rw-r--r--tests/check_framework/template_test_apps/same_tags_app_2/apps.py5
-rw-r--r--tests/check_framework/template_test_apps/same_tags_app_2/templatetags/__init__.py0
-rw-r--r--tests/check_framework/template_test_apps/same_tags_app_2/templatetags/same_tags.py3
-rw-r--r--tests/check_framework/test_templates.py87
14 files changed, 109 insertions, 2 deletions
diff --git a/tests/check_framework/template_test_apps/__init__.py b/tests/check_framework/template_test_apps/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/check_framework/template_test_apps/__init__.py
diff --git a/tests/check_framework/template_test_apps/different_tags_app/__init__.py b/tests/check_framework/template_test_apps/different_tags_app/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/check_framework/template_test_apps/different_tags_app/__init__.py
diff --git a/tests/check_framework/template_test_apps/different_tags_app/apps.py b/tests/check_framework/template_test_apps/different_tags_app/apps.py
new file mode 100644
index 0000000000..90d54b3d50
--- /dev/null
+++ b/tests/check_framework/template_test_apps/different_tags_app/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class DifferentTagsAppAppConfig(AppConfig):
+ name = 'check_framework.template_test_apps.different_tags_app'
diff --git a/tests/check_framework/template_test_apps/different_tags_app/templatetags/__init__.py b/tests/check_framework/template_test_apps/different_tags_app/templatetags/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/check_framework/template_test_apps/different_tags_app/templatetags/__init__.py
diff --git a/tests/check_framework/template_test_apps/different_tags_app/templatetags/different_tags.py b/tests/check_framework/template_test_apps/different_tags_app/templatetags/different_tags.py
new file mode 100644
index 0000000000..9bec93d8e5
--- /dev/null
+++ b/tests/check_framework/template_test_apps/different_tags_app/templatetags/different_tags.py
@@ -0,0 +1,3 @@
+from django.template import Library
+
+register = Library()
diff --git a/tests/check_framework/template_test_apps/same_tags_app_1/__init__.py b/tests/check_framework/template_test_apps/same_tags_app_1/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/check_framework/template_test_apps/same_tags_app_1/__init__.py
diff --git a/tests/check_framework/template_test_apps/same_tags_app_1/apps.py b/tests/check_framework/template_test_apps/same_tags_app_1/apps.py
new file mode 100644
index 0000000000..44149177a0
--- /dev/null
+++ b/tests/check_framework/template_test_apps/same_tags_app_1/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class SameTagsApp1AppConfig(AppConfig):
+ name = 'check_framework.template_test_apps.same_tags_app_1'
diff --git a/tests/check_framework/template_test_apps/same_tags_app_1/templatetags/__init__.py b/tests/check_framework/template_test_apps/same_tags_app_1/templatetags/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/check_framework/template_test_apps/same_tags_app_1/templatetags/__init__.py
diff --git a/tests/check_framework/template_test_apps/same_tags_app_1/templatetags/same_tags.py b/tests/check_framework/template_test_apps/same_tags_app_1/templatetags/same_tags.py
new file mode 100644
index 0000000000..9bec93d8e5
--- /dev/null
+++ b/tests/check_framework/template_test_apps/same_tags_app_1/templatetags/same_tags.py
@@ -0,0 +1,3 @@
+from django.template import Library
+
+register = Library()
diff --git a/tests/check_framework/template_test_apps/same_tags_app_2/__init__.py b/tests/check_framework/template_test_apps/same_tags_app_2/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/check_framework/template_test_apps/same_tags_app_2/__init__.py
diff --git a/tests/check_framework/template_test_apps/same_tags_app_2/apps.py b/tests/check_framework/template_test_apps/same_tags_app_2/apps.py
new file mode 100644
index 0000000000..d90c800d1f
--- /dev/null
+++ b/tests/check_framework/template_test_apps/same_tags_app_2/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class SameTagsApp2AppConfig(AppConfig):
+ name = 'check_framework.template_test_apps.same_tags_app_2'
diff --git a/tests/check_framework/template_test_apps/same_tags_app_2/templatetags/__init__.py b/tests/check_framework/template_test_apps/same_tags_app_2/templatetags/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/check_framework/template_test_apps/same_tags_app_2/templatetags/__init__.py
diff --git a/tests/check_framework/template_test_apps/same_tags_app_2/templatetags/same_tags.py b/tests/check_framework/template_test_apps/same_tags_app_2/templatetags/same_tags.py
new file mode 100644
index 0000000000..9bec93d8e5
--- /dev/null
+++ b/tests/check_framework/template_test_apps/same_tags_app_2/templatetags/same_tags.py
@@ -0,0 +1,3 @@
+from django.template import Library
+
+register = Library()
diff --git a/tests/check_framework/test_templates.py b/tests/check_framework/test_templates.py
index 955c863822..88c0479436 100644
--- a/tests/check_framework/test_templates.py
+++ b/tests/check_framework/test_templates.py
@@ -1,8 +1,9 @@
from copy import copy, deepcopy
+from django.core.checks import Error
from django.core.checks.templates import (
- E001, E002, check_setting_app_dirs_loaders,
- check_string_if_invalid_is_string,
+ E001, E002, E003, check_for_template_tags_with_the_same_name,
+ check_setting_app_dirs_loaders, check_string_if_invalid_is_string,
)
from django.test import SimpleTestCase
from django.test.utils import override_settings
@@ -87,3 +88,85 @@ class CheckTemplateStringIfInvalidTest(SimpleTestCase):
del TEMPLATES[1]['OPTIONS']['string_if_invalid']
with self.settings(TEMPLATES=TEMPLATES):
self.assertEqual(check_string_if_invalid_is_string(None), [self.error1])
+
+
+class CheckTemplateTagLibrariesWithSameName(SimpleTestCase):
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ cls.error_same_tags = Error(
+ E003.msg.format(
+ "'same_tags'",
+ "'check_framework.template_test_apps.same_tags_app_1."
+ "templatetags.same_tags', "
+ "'check_framework.template_test_apps.same_tags_app_2."
+ "templatetags.same_tags'",
+ ),
+ id=E003.id,
+ )
+
+ @staticmethod
+ def get_settings(module_name, module_path):
+ return {
+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
+ 'OPTIONS': {
+ 'libraries': {
+ module_name: f'check_framework.template_test_apps.{module_path}',
+ },
+ },
+ }
+
+ @override_settings(INSTALLED_APPS=[
+ 'check_framework.template_test_apps.same_tags_app_1',
+ 'check_framework.template_test_apps.same_tags_app_2',
+ ])
+ def test_template_tags_with_same_name(self):
+ self.assertEqual(
+ check_for_template_tags_with_the_same_name(None),
+ [self.error_same_tags],
+ )
+
+ def test_template_tags_with_same_library_name(self):
+ with self.settings(TEMPLATES=[
+ self.get_settings('same_tags', 'same_tags_app_1.templatetags.same_tags'),
+ self.get_settings('same_tags', 'same_tags_app_2.templatetags.same_tags'),
+ ]):
+ self.assertEqual(
+ check_for_template_tags_with_the_same_name(None),
+ [self.error_same_tags],
+ )
+
+ @override_settings(INSTALLED_APPS=[
+ 'check_framework.template_test_apps.same_tags_app_1'
+ ])
+ def test_template_tags_with_same_library_name_and_module_name(self):
+ with self.settings(TEMPLATES=[
+ self.get_settings(
+ 'same_tags',
+ 'different_tags_app.templatetags.different_tags',
+ ),
+ ]):
+ self.assertEqual(check_for_template_tags_with_the_same_name(None), [Error(
+ E003.msg.format(
+ "'same_tags'",
+ "'check_framework.template_test_apps.different_tags_app."
+ "templatetags.different_tags', "
+ "'check_framework.template_test_apps.same_tags_app_1."
+ "templatetags.same_tags'",
+ ),
+ id=E003.id,
+ )])
+
+ def test_template_tags_with_different_library_name(self):
+ with self.settings(TEMPLATES=[
+ self.get_settings('same_tags', 'same_tags_app_1.templatetags.same_tags'),
+ self.get_settings('not_same_tags', 'same_tags_app_2.templatetags.same_tags'),
+ ]):
+ self.assertEqual(check_for_template_tags_with_the_same_name(None), [])
+
+ @override_settings(INSTALLED_APPS=[
+ 'check_framework.template_test_apps.same_tags_app_1',
+ 'check_framework.template_test_apps.different_tags_app',
+ ])
+ def test_template_tags_with_different_name(self):
+ self.assertEqual(check_for_template_tags_with_the_same_name(None), [])