/tests/regressiontests/test_utils/tests_25.py
Python | 41 lines | 29 code | 12 blank | 0 comment | 10 complexity | c3b06b1bd875e33a90a0afecb9179832 MD5 | raw file
Possible License(s): BSD-3-Clause
- from __future__ import with_statement
- from django.test import TestCase
- from models import Person
- class AssertNumQueriesContextManagerTests(TestCase):
- def test_simple(self):
- with self.assertNumQueries(0):
- pass
- with self.assertNumQueries(1):
- Person.objects.count()
- with self.assertNumQueries(2):
- Person.objects.count()
- Person.objects.count()
- def test_failure(self):
- with self.assertRaises(AssertionError) as exc_info:
- with self.assertNumQueries(2):
- Person.objects.count()
- self.assertIn("1 queries executed, 2 expected", str(exc_info.exception))
- with self.assertRaises(TypeError):
- with self.assertNumQueries(4000):
- raise TypeError
- def test_with_client(self):
- person = Person.objects.create(name="test")
- with self.assertNumQueries(1):
- self.client.get("/test_utils/get_person/%s/" % person.pk)
- with self.assertNumQueries(1):
- self.client.get("/test_utils/get_person/%s/" % person.pk)
- with self.assertNumQueries(2):
- self.client.get("/test_utils/get_person/%s/" % person.pk)
- self.client.get("/test_utils/get_person/%s/" % person.pk)