Fixed #29673 -- Reset the URLconf at the end of each request.

Co-authored-by: Ross Thorne <rmwthorne@googlemail.com>
This commit is contained in:
Matthew Power 2018-09-26 20:35:24 +01:00 committed by Tim Graham
parent 91841c77cd
commit 18098d261f
2 changed files with 17 additions and 1 deletions

View file

@ -18,7 +18,7 @@ from django.test import SimpleTestCase, TestCase, override_settings
from django.test.utils import override_script_prefix
from django.urls import (
NoReverseMatch, Resolver404, ResolverMatch, URLPattern, URLResolver,
get_callable, get_resolver, resolve, reverse, reverse_lazy,
get_callable, get_resolver, get_urlconf, resolve, reverse, reverse_lazy,
)
from django.urls.resolvers import RegexPattern
@ -1034,6 +1034,13 @@ class RequestURLconfTests(SimpleTestCase):
self.client.get('/second_test/')
b''.join(self.client.get('/second_test/'))
def test_urlconf_is_reset_after_request(self):
"""The URLconf is reset after each request."""
self.assertIsNone(get_urlconf())
with override_settings(MIDDLEWARE=['%s.ChangeURLconfMiddleware' % middleware.__name__]):
self.client.get(reverse('inner'))
self.assertIsNone(get_urlconf())
class ErrorHandlerResolutionTests(SimpleTestCase):
"""Tests for handler400, handler404 and handler500"""