Add TestCase.assertQueries(), for advanced query checks.

Review Request #12345 — Created June 8, 2022 and submitted — Latest diff uploaded

Information

Djblets
release-3.x

Reviewers

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.

Commits

Files