Commit ce76fbfc authored by Aymeric Augustin's avatar Aymeric Augustin
Browse files

Fixed #20019 -- Ensured HttpRequest.resolver_match always exists.

Obviously it isn't set until the URL is resolved.
parent 7fca4416
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ class HttpRequest(object):
        self.path = ''
        self.path_info = ''
        self.method = None
        self.resolver_match = None
        self._post_parse_error = False

    def __repr__(self):
+5 −1
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ from django.core.exceptions import ImproperlyConfigured, ViewDoesNotExist
from django.core.urlresolvers import (reverse, resolve, get_callable,
    get_resolver, NoReverseMatch, Resolver404, ResolverMatch, RegexURLResolver,
    RegexURLPattern)
from django.http import HttpResponseRedirect, HttpResponsePermanentRedirect
from django.http import HttpRequest, HttpResponseRedirect, HttpResponsePermanentRedirect
from django.shortcuts import redirect
from django.test import TestCase
from django.utils import unittest, six
@@ -529,6 +529,10 @@ class ResolverMatchTests(TestCase):
        resolver_match = response.resolver_match
        self.assertEqual(resolver_match.url_name, 'test-resolver-match')

    def test_resolver_match_on_request_before_resolution(self):
        request = HttpRequest()
        self.assertIsNone(request.resolver_match)

class ErroneousViewTests(TestCase):
    urls = 'urlpatterns_reverse.erroneous_urls'