Commit 5e00b144 authored by Carl Worth's avatar Carl Worth Committed by Tim Graham
Browse files

Added tests for logging of Http404 warnings.

parent 86880ab8
Loading
Loading
Loading
Loading
+36 −3
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -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),
]
+9 −0
Original line number Diff line number Diff line
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()),
)
+5 −0
Original line number Diff line number Diff line
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):