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.

Diff Revision 5

This is not the most recent revision of the diff. The latest diff is revision 6. See what's changed.

orig
1
2
3
4
5
6

Commits

First Last Summary ID Author
Add TestCase.assertQueries(), for advanced query checks.
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.
30dba59525421a643aaee15af796d6476e4462b5 Christian Hammond
djblets/testing/testcases.py
Loading...