Add TestCase.assertQueries(), for advanced query checks.
Review Request #12345 — Created June 8, 2022 and submitted — Latest diff uploaded
This introduces
TestCase.assertQueries()
, a new unit test function
that can assert not just the number of queries performed by also the
complexity of those queries.This takes in a list of queries built by Django and executed, checking
them for the lists of fields selected, tables joined, filter
conditions, annotations, ordering, and more.This can offer a lot of advantages when writing tests, helping ensure
that queries are as performant as possible, or at least don't contain
unexpected complexity.
Made use of this in a bunch of unit tests in Review Board. Tested all
the major types of operations that can be performed when querying.