1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- """
- Tests for Django's bundled context processors.
- """
- from django.test import TestCase, override_settings
- @override_settings(
- ROOT_URLCONF='context_processors.urls',
- TEMPLATES=[{
- 'BACKEND': 'django.template.backends.django.DjangoTemplates',
- 'APP_DIRS': True,
- 'OPTIONS': {
- 'context_processors': [
- 'django.template.context_processors.request',
- ],
- },
- }],
- )
- class RequestContextProcessorTests(TestCase):
- """
- Tests for the ``django.template.context_processors.request`` processor.
- """
- def test_request_attributes(self):
- """
- Test that the request object is available in the template and that its
- attributes can't be overridden by GET and POST parameters (#3828).
- """
- url = '/request_attrs/'
- # We should have the request object in the template.
- response = self.client.get(url)
- self.assertContains(response, 'Have request')
- # Test is_secure.
- response = self.client.get(url)
- self.assertContains(response, 'Not secure')
- response = self.client.get(url, {'is_secure': 'blah'})
- self.assertContains(response, 'Not secure')
- response = self.client.post(url, {'is_secure': 'blah'})
- self.assertContains(response, 'Not secure')
- # Test path.
- response = self.client.get(url)
- self.assertContains(response, url)
- response = self.client.get(url, {'path': '/blah/'})
- self.assertContains(response, url)
- response = self.client.post(url, {'path': '/blah/'})
- self.assertContains(response, url)
- @override_settings(
- DEBUG=True,
- INTERNAL_IPS=('127.0.0.1',),
- ROOT_URLCONF='context_processors.urls',
- TEMPLATES=[{
- 'BACKEND': 'django.template.backends.django.DjangoTemplates',
- 'APP_DIRS': True,
- 'OPTIONS': {
- 'context_processors': [
- 'django.template.context_processors.debug',
- ],
- },
- }],
- )
- class DebugContextProcessorTests(TestCase):
- """
- Tests for the ``django.template.context_processors.debug`` processor.
- """
- def test_debug(self):
- url = '/debug/'
- # We should have the debug flag in the template.
- response = self.client.get(url)
- self.assertContains(response, 'Have debug')
- # And now we should not
- with override_settings(DEBUG=False):
- response = self.client.get(url)
- self.assertNotContains(response, 'Have debug')
- def test_sql_queries(self):
- """
- Test whether sql_queries represents the actual amount
- of queries executed. (#23364)
- """
- url = '/debug/'
- response = self.client.get(url)
- self.assertContains(response, 'First query list: 0')
- self.assertContains(response, 'Second query list: 1')
- # Check we have not actually memoized connection.queries
- self.assertContains(response, 'Third query list: 2')
|