From 62739b6e2630e37faa68a86a59fad135cc788cd7 Mon Sep 17 00:00:00 2001 From: Manel Clos Date: Sat, 9 Apr 2022 11:36:26 +0200 Subject: [PATCH] Fixed #33628 -- Ignored directories with empty names in autoreloader check for template changes. Regression in 68357b2ca9e88c40fc00d848799813241be39129. --- django/template/autoreload.py | 4 ++-- docs/releases/3.2.13.txt | 10 +++++++++- docs/releases/4.0.4.txt | 7 ++++++- tests/template_tests/test_autoreloader.py | 11 +++++++++++ 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/django/template/autoreload.py b/django/template/autoreload.py index 84c8554165..f3fd704031 100644 --- a/django/template/autoreload.py +++ b/django/template/autoreload.py @@ -17,7 +17,7 @@ def get_template_directories(): if not isinstance(backend, DjangoTemplates): continue - items.update(cwd / to_path(dir) for dir in backend.engine.dirs) + items.update(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"): @@ -25,7 +25,7 @@ def get_template_directories(): items.update( 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 diff --git a/docs/releases/3.2.13.txt b/docs/releases/3.2.13.txt index 53de2645c4..c26a969f95 100644 --- a/docs/releases/3.2.13.txt +++ b/docs/releases/3.2.13.txt @@ -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`). diff --git a/docs/releases/4.0.4.txt b/docs/releases/4.0.4.txt index 67dc19ca94..6873e78900 100644 --- a/docs/releases/4.0.4.txt +++ b/docs/releases/4.0.4.txt @@ -4,10 +4,15 @@ Django 4.0.4 release notes *April 11, 2022* -Django 4.0.4 fixes two security issues with severity "high" and a bug in 4.0.3. +Django 4.0.4 fixes two security issues with severity "high" and two bugs in +4.0.3. Bugfixes ======== * Fixed a regression in Django 4.0 that caused ignoring multiple ``FilteredRelation()`` relationships to the same field (:ticket:`33598`). + +* 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`). diff --git a/tests/template_tests/test_autoreloader.py b/tests/template_tests/test_autoreloader.py index cc2c3f58a5..b8c16961bf 100644 --- a/tests/template_tests/test_autoreloader.py +++ b/tests/template_tests/test_autoreloader.py @@ -81,6 +81,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=[ {