@@ -188,6 +188,48 @@ def test_for_invalid_template(client):
188
188
)
189
189
190
190
191
+ @pytest .mark .django_project (
192
+ extra_settings = """
193
+ TEMPLATE_LOADERS = (
194
+ 'django.template.loaders.filesystem.Loader',
195
+ 'django.template.loaders.app_directories.Loader',
196
+ )
197
+ """
198
+ )
199
+ def test_invalid_template_variable_object_does_not_exists_behaves_like_an_empty_string (
200
+ django_pytester : DjangoPytester ,
201
+ ) -> None :
202
+ django_pytester .create_app_file (
203
+ "<div>{% if object_exists %}This should not appear{% endif %}</div>" ,
204
+ "templates/invalid_template_base.html" ,
205
+ )
206
+ django_pytester .create_app_file (
207
+ "{% include 'invalid_template_base.html' %}" ,
208
+ "templates/invalid_template.html" ,
209
+ )
210
+ django_pytester .create_test_module (
211
+ """
212
+ from django.core.exceptions import ObjectDoesNotExist
213
+ from django.template.loader import render_to_string
214
+
215
+ import pytest
216
+
217
+ def fake_one_to_one_relation_missing():
218
+ raise ObjectDoesNotExist()
219
+
220
+ def test_ignore():
221
+ assert render_to_string(
222
+ 'invalid_template.html',
223
+ {"object_exists": fake_one_to_one_relation_missing},
224
+ ) == "<div></div>"
225
+ """
226
+ )
227
+
228
+ result = django_pytester .runpytest_subprocess ("-s" , "--fail-on-template-vars" )
229
+
230
+ result .assert_outcomes (passed = 1 )
231
+
232
+
191
233
@pytest .mark .django_project (
192
234
extra_settings = """
193
235
TEMPLATE_LOADERS = (
0 commit comments