В современном Django (> = 1.8) он хорошо документирован (он также документирован для 1.7) здесь , у вас есть метод reset_queries вместо назначения connection.queries = [] , что действительно вызывает ошибку, что-то подобное работает на django> = 1.8:
class QueriesTests(django.test.TestCase):
def test_queries(self):
from django.conf import settings
from django.db import connection, reset_queries
try:
settings.DEBUG = True
# [... your ORM code ...]
self.assertEquals(len(connection.queries), num_of_expected_queries)
finally:
settings.DEBUG = False
reset_queries()
Вы можете также рассмотреть возможность сброса запросов в setUp / tearDown, чтобы гарантировать, что запросы сбрасываются для каждого теста, вместо того, чтобы делать это в предложении finally, но этот способ более явный (хотя и более подробный), или вы можете использовать reset_queries в предложении try столько раз, сколько нужно, чтобы оценить количество запросов, начиная с 0.