﻿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
36327	Improve TestCase.assertNumQueries() to allow for multiple databases	Javier Buzzi		"[https://github.com/django/django/pull/19380 PR 19380]

Relevant discussions:
* https://forum.djangoproject.com/t/add-ability-to-capture-all-the-db-queries-at-once-during-tests/39650
* https://github.com/pytest-dev/pytest-django/pull/1177

The goal is to enhance the behavior of `TestCase.assertNumQueries()`. In large Django projects, the data structure is often split into multiple databases—for example, one for user data, another for business data, one for events, and even a dedicated one for certain monetary compliance logs. As a result, tests may need to validate query counts across several databases. For instance, you might have code that looks like this:

{{{
class TestThing(TestCase):
    databases = {""db1"", ""db2"", ""db3"", ""db4""}

    def test_thing(self):
        with self.assertNumQueries(4, using=""db1""), self.assertNumQueries(0, using=""db2""), self.assertNumQueries(1, using=""db3""), self.assertNumQueries(0, using=""db4""):
            thing()
}}}

The desired improvement is to simplify this syntax. Instead of writing a separate context manager for each database, you could pass multiple databases at once. For example:

{{{
class TestThing(TestCase):
    databases = {""db1"", ""db2"", ""db3"", ""db4""}

    def test_thing(self):
        with self.assertNumQueries(5, using={""db1"", ""db2"", ""db3"", ""db4""}):
            thing()
}}}

Alternatively, you might be able to use a special keyword like `__all__` to achieve the same effect:

{{{
with self.assertNumQueries(5, using=""__all__""):
    ...
}}}

This approach not only makes the test code more manageable but also helps improve clarity by consolidating query count assertions across all databases."	New feature	new	Testing framework	dev	Normal		query count testcase assertNumQueries		Unreviewed	1	0	0	0	0	0
