﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
35481	assertTemplateUsed false positive	Shiva Kumar	nobody	"assertTemplateUsed can be used [https://docs.djangoproject.com/en/dev/topics/testing/tools/#django.test.SimpleTestCase.assertTemplateUsed both as a function and as a context manager].
When used as a function, both `request` and `template_name` should be passed. When used as a context manager, only `template_name` needs to be passed.

Consider a test case,
{{{
def test_template_used(self):
    resp = self.client.get(""/home/"")
    self.assertEqual(resp.status_code, 200)
    self.assertTemplateUsed(""home.html"")
}}}
In this case, the last statement returns a context manager object, resulting in no assertion checks, and the test case passes. The test case passed even if the wrong `template_name` is provided.

This scenario arises solely because `assertTemplateUsed` assumes that [https://github.com/django/django/blob/main/django/test/testcases.py#L750-L751 when only `template_name` is provided, it must have been used as a context manager].

Had there been a keyword-only argument restriction, this scenario wouldn't have arisen.

This bug is applicable to `assertTemplateNotUsed` as well.

If the bug is deemed valid, please assign the ticket to me."	Bug	closed	Testing framework	dev	Normal	invalid			Unreviewed	0	0	0	0	0	0
