diff options
| author | Brian Rosner <brosner@gmail.com> | 2009-11-16 01:58:00 +0000 |
|---|---|---|
| committer | Brian Rosner <brosner@gmail.com> | 2009-11-16 01:58:00 +0000 |
| commit | 6c61ca3d74ae438c34f404676470234e8213d7c2 (patch) | |
| tree | d1ba558c1b61ca2c19c5cc68428a94aaa57a5280 /tests/regressiontests/urlpatterns_reverse/tests.py | |
| parent | c169f8cb174c9a8858cc8af207f98b9329f53e82 (diff) | |
Fixed #5034 -- honor request.urlconf in reverse and resolve.
This enables {% url %} to honor request.urlconf set from process_request
middleware methods.
Thanks SmileyChris for the initial patch work.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@11740 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/urlpatterns_reverse/tests.py')
| -rw-r--r-- | tests/regressiontests/urlpatterns_reverse/tests.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/regressiontests/urlpatterns_reverse/tests.py b/tests/regressiontests/urlpatterns_reverse/tests.py index d4f281ba81..34c9db25d3 100644 --- a/tests/regressiontests/urlpatterns_reverse/tests.py +++ b/tests/regressiontests/urlpatterns_reverse/tests.py @@ -16,11 +16,16 @@ ImproperlyConfigured: The included urlconf regressiontests.urlpatterns_reverse.n import unittest +from django.conf import settings from django.core.urlresolvers import reverse, resolve, NoReverseMatch, Resolver404 from django.http import HttpResponseRedirect, HttpResponsePermanentRedirect from django.shortcuts import redirect from django.test import TestCase +import urlconf_outer +import urlconf_inner +import middleware + test_data = ( ('places', '/places/3/', [3], {}), ('places', '/places/3/', ['3'], {}), @@ -239,3 +244,35 @@ class NamespaceTests(TestCase): self.assertEquals('/other1/inner/37/42/', reverse('nodefault:urlobject-view', args=[37,42], current_app='other-ns1')) self.assertEquals('/other1/inner/42/37/', reverse('nodefault:urlobject-view', kwargs={'arg1':42, 'arg2':37}, current_app='other-ns1')) + +class RequestURLconfTests(TestCase): + def setUp(self): + self.root_urlconf = settings.ROOT_URLCONF + self.middleware_classes = settings.MIDDLEWARE_CLASSES + settings.ROOT_URLCONF = urlconf_outer.__name__ + + def tearDown(self): + settings.ROOT_URLCONF = self.root_urlconf + settings.MIDDLEWARE_CLASSES = self.middleware_classes + + def test_urlconf(self): + response = self.client.get('/test/me/') + self.assertEqual(response.status_code, 200) + self.assertEqual(response.content, 'outer:/test/me/,' + 'inner:/inner_urlconf/second_test/') + response = self.client.get('/inner_urlconf/second_test/') + self.assertEqual(response.status_code, 200) + response = self.client.get('/second_test/') + self.assertEqual(response.status_code, 404) + + def test_urlconf_overridden(self): + settings.MIDDLEWARE_CLASSES += ( + '%s.ChangeURLconfMiddleware' % middleware.__name__, + ) + response = self.client.get('/test/me/') + self.assertEqual(response.status_code, 404) + response = self.client.get('/inner_urlconf/second_test/') + self.assertEqual(response.status_code, 404) + response = self.client.get('/second_test/') + self.assertEqual(response.status_code, 200) + self.assertEqual(response.content, 'outer:,inner:/second_test/') |
