@@ -113,6 +113,48 @@ def test_ignore(client):
113
113
)
114
114
115
115
116
+ @pytest .mark .django_project (
117
+ extra_settings = """
118
+ TEMPLATE_LOADERS = (
119
+ 'django.template.loaders.filesystem.Loader',
120
+ 'django.template.loaders.app_directories.Loader',
121
+ )
122
+ ROOT_URLCONF = 'tpkg.app.urls'
123
+ """
124
+ )
125
+ def test_invalid_template_with_default_if_none (django_testdir ):
126
+ django_testdir .create_app_file (
127
+ """
128
+ <div>{{ data.empty|default:'d' }}</div>
129
+ <div>{{ data.none|default:'d' }}</div>
130
+ <div>{{ data.empty|default_if_none:'d' }}</div>
131
+ <div>{{ data.none|default_if_none:'d' }}</div>
132
+ <div>{{ data.missing|default_if_none:'d' }}</div>
133
+ """ ,
134
+ "templates/the_template.html" ,
135
+ )
136
+ django_testdir .create_test_module (
137
+ """
138
+ def test_for_invalid_template():
139
+ from django.shortcuts import render
140
+
141
+
142
+ render(
143
+ request=None,
144
+ template_name='the_template.html',
145
+ context={'data': {'empty': '', 'none': None}},
146
+ )
147
+ """
148
+ )
149
+ result = django_testdir .runpytest_subprocess ("--fail-on-template-vars" )
150
+ result .stdout .fnmatch_lines (
151
+ [
152
+ "tpkg/test_the_test.py F" ,
153
+ "E * Failed: Undefined template variable 'data.missing' in *the_template.html'" ,
154
+ ]
155
+ )
156
+
157
+
116
158
@pytest .mark .django_project (
117
159
extra_settings = """
118
160
TEMPLATE_LOADERS = (
0 commit comments