Added tests for logging of Http404 warnings.

This commit is contained in:
Carl Worth 2016-04-13 14:38:17 -07:00 committed by Tim Graham
parent 86880ab89b
commit 5e00b14403
4 changed files with 51 additions and 3 deletions

View File

@ -66,19 +66,22 @@ class LoggingFiltersTest(SimpleTestCase):
self.assertEqual(filter_.filter("record is not used"), False)
class DefaultLoggingTest(LoggingCaptureMixin, SimpleTestCase):
class SetupDefaultLoggingMixin(object):
@classmethod
def setUpClass(cls):
super(DefaultLoggingTest, cls).setUpClass()
super(SetupDefaultLoggingMixin, cls).setUpClass()
cls._logging = settings.LOGGING
logging.config.dictConfig(DEFAULT_LOGGING)
@classmethod
def tearDownClass(cls):
super(DefaultLoggingTest, cls).tearDownClass()
super(SetupDefaultLoggingMixin, cls).tearDownClass()
logging.config.dictConfig(cls._logging)
class DefaultLoggingTests(SetupDefaultLoggingMixin, LoggingCaptureMixin, SimpleTestCase):
def test_django_logger(self):
"""
The 'django' base logger only output anything when DEBUG=True.
@ -106,6 +109,36 @@ class DefaultLoggingTest(LoggingCaptureMixin, SimpleTestCase):
self.assertEqual(self.logger_output.getvalue(), '')
@override_settings(DEBUG=True, ROOT_URLCONF='logging_tests.urls')
class HandlerLoggingTests(SetupDefaultLoggingMixin, LoggingCaptureMixin, SimpleTestCase):
def test_page_found_no_warning(self):
self.client.get('/innocent/')
self.assertEqual(self.logger_output.getvalue(), '')
def test_page_not_found_warning(self):
self.client.get('/does_not_exist/')
self.assertEqual(self.logger_output.getvalue(), 'Not Found: /does_not_exist/\n')
@override_settings(
DEBUG=True,
USE_I18N=True,
LANGUAGES=[('en', 'English')],
MIDDLEWARE_CLASSES=[
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
],
ROOT_URLCONF='logging_tests.urls_i18n',
)
class I18nLoggingTests(SetupDefaultLoggingMixin, LoggingCaptureMixin, SimpleTestCase):
def test_i18n_page_not_found_warning(self):
self.client.get('/this_does_not/')
self.client.get('/en/nor_this/')
self.assertEqual(self.logger_output.getvalue(), 'Not Found: /this_does_not/\nNot Found: /en/nor_this/\n')
class WarningLoggerTests(SimpleTestCase):
"""
Tests that warnings output for RemovedInDjangoXXWarning (XX being the next

View File

@ -5,6 +5,7 @@ from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^innocent/$', views.innocent),
url(r'^suspicious/$', views.suspicious),
url(r'^suspicious_spec/$', views.suspicious_spec),
]

View File

@ -0,0 +1,9 @@
from __future__ import unicode_literals
from django.conf.urls import url
from django.conf.urls.i18n import i18n_patterns
from django.http import HttpResponse
urlpatterns = i18n_patterns(
url(r'^exists/$', lambda r: HttpResponse()),
)

View File

@ -1,6 +1,11 @@
from __future__ import unicode_literals
from django.core.exceptions import DisallowedHost, SuspiciousOperation
from django.http import HttpResponse
def innocent(request):
return HttpResponse('innocent')
def suspicious(request):