1
0
mirror of https://github.com/django/django.git synced 2025-07-04 17:59:13 +00:00

[3.2.x] Fixed #33628 -- Ignored directories with empty names in autoreloader check for template changes.

Regression in 68357b2ca9e88c40fc00d848799813241be39129.

Backport of 62739b6e2630e37faa68a86a59fad135cc788cd7 from main.
This commit is contained in:
Manel Clos 2022-04-09 11:36:26 +02:00 committed by Mariusz Felisiak
parent 70035fb044
commit bdb92dba0b
3 changed files with 22 additions and 3 deletions

View File

@ -18,7 +18,7 @@ def get_template_directories():
if not isinstance(backend, DjangoTemplates):
continue
items.update(Path.cwd() / to_path(dir) for dir in backend.engine.dirs)
items.update(Path.cwd() / to_path(dir) for dir in backend.engine.dirs if dir)
for loader in backend.engine.template_loaders:
if not hasattr(loader, 'get_dirs'):
@ -26,7 +26,7 @@ def get_template_directories():
items.update(
Path.cwd() / to_path(directory)
for directory in loader.get_dirs()
if not is_django_path(directory)
if directory and not is_django_path(directory)
)
return items

View File

@ -4,4 +4,12 @@ Django 3.2.13 release notes
*April 11, 2022*
Django 3.2.13 fixes two security issues with severity "high" in 3.2.12.
Django 3.2.13 fixes two security issues with severity "high" in
3.2.12 and a regression in 3.2.4.
Bugfixes
========
* Fixed a regression in Django 3.2.4 that caused the auto-reloader to no longer
detect changes when the ``DIRS`` option of the ``TEMPLATES`` setting
contained an empty string (:ticket:`33628`).

View File

@ -64,6 +64,17 @@ class TemplateReloadTests(SimpleTestCase):
autoreload.reset_loaders()
self.assertEqual(mock_reset.call_count, 2)
@override_settings(
TEMPLATES=[
{
"DIRS": [""],
"BACKEND": "django.template.backends.django.DjangoTemplates",
}
]
)
def test_template_dirs_ignore_empty_path(self):
self.assertEqual(autoreload.get_template_directories(), set())
@override_settings(
TEMPLATES=[{
'DIRS': [