1
0
mirror of https://github.com/django/django.git synced 2025-06-15 00:19:12 +00:00

Refs #36435 -- Tidied tests for CaptureQueriesContext and assertNumQueries.

Avoided repeatedly templating the URL and hoisted Person creation to
setUpTestData in AssertNumQueriesContextManagerTests to repeat the same
pattern as in CaptureQueriesContextManagerTests.
This commit is contained in:
Adam Johnson 2025-06-03 23:11:05 +01:00 committed by Sarah Boyce
parent 68c9f7e0b7
commit 9a3f3b8499

View File

@ -386,6 +386,7 @@ class CaptureQueriesContextManagerTests(TestCase):
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
cls.person_pk = str(Person.objects.create(name="test").pk) cls.person_pk = str(Person.objects.create(name="test").pk)
cls.url = f"/test_utils/get_person/{cls.person_pk}/"
def test_simple(self): def test_simple(self):
with CaptureQueriesContext(connection) as captured_queries: with CaptureQueriesContext(connection) as captured_queries:
@ -418,18 +419,18 @@ class CaptureQueriesContextManagerTests(TestCase):
def test_with_client(self): def test_with_client(self):
with CaptureQueriesContext(connection) as captured_queries: with CaptureQueriesContext(connection) as captured_queries:
self.client.get("/test_utils/get_person/%s/" % self.person_pk) self.client.get(self.url)
self.assertEqual(len(captured_queries), 1) self.assertEqual(len(captured_queries), 1)
self.assertIn(self.person_pk, captured_queries[0]["sql"]) self.assertIn(self.person_pk, captured_queries[0]["sql"])
with CaptureQueriesContext(connection) as captured_queries: with CaptureQueriesContext(connection) as captured_queries:
self.client.get("/test_utils/get_person/%s/" % self.person_pk) self.client.get(self.url)
self.assertEqual(len(captured_queries), 1) self.assertEqual(len(captured_queries), 1)
self.assertIn(self.person_pk, captured_queries[0]["sql"]) self.assertIn(self.person_pk, captured_queries[0]["sql"])
with CaptureQueriesContext(connection) as captured_queries: with CaptureQueriesContext(connection) as captured_queries:
self.client.get("/test_utils/get_person/%s/" % self.person_pk) self.client.get(self.url)
self.client.get("/test_utils/get_person/%s/" % self.person_pk) self.client.get(self.url)
self.assertEqual(len(captured_queries), 2) self.assertEqual(len(captured_queries), 2)
self.assertIn(self.person_pk, captured_queries[0]["sql"]) self.assertIn(self.person_pk, captured_queries[0]["sql"])
self.assertIn(self.person_pk, captured_queries[1]["sql"]) self.assertIn(self.person_pk, captured_queries[1]["sql"])
@ -437,6 +438,11 @@ class CaptureQueriesContextManagerTests(TestCase):
@override_settings(ROOT_URLCONF="test_utils.urls") @override_settings(ROOT_URLCONF="test_utils.urls")
class AssertNumQueriesContextManagerTests(TestCase): class AssertNumQueriesContextManagerTests(TestCase):
@classmethod
def setUpTestData(cls):
cls.person_pk = str(Person.objects.create(name="test").pk)
cls.url = f"/test_utils/get_person/{cls.person_pk}/"
def test_simple(self): def test_simple(self):
with self.assertNumQueries(0): with self.assertNumQueries(0):
pass pass
@ -459,17 +465,15 @@ class AssertNumQueriesContextManagerTests(TestCase):
raise TypeError raise TypeError
def test_with_client(self): def test_with_client(self):
person = Person.objects.create(name="test") with self.assertNumQueries(1):
self.client.get(self.url)
with self.assertNumQueries(1): with self.assertNumQueries(1):
self.client.get("/test_utils/get_person/%s/" % person.pk) self.client.get(self.url)
with self.assertNumQueries(1):
self.client.get("/test_utils/get_person/%s/" % person.pk)
with self.assertNumQueries(2): with self.assertNumQueries(2):
self.client.get("/test_utils/get_person/%s/" % person.pk) self.client.get(self.url)
self.client.get("/test_utils/get_person/%s/" % person.pk) self.client.get(self.url)
@override_settings(ROOT_URLCONF="test_utils.urls") @override_settings(ROOT_URLCONF="test_utils.urls")