From 79558c787ebfd0fe723acb061a375b19a27f18cd Mon Sep 17 00:00:00 2001 From: Grzegorz Nosek Date: Sat, 15 Feb 2014 14:41:01 +0100 Subject: Fixed #18373 - improved handling of Resolver404s from views When django.core.urlresolvers.resolve was called from a view, failed and the exception was propagated and rendered by technical_404_response, the URL mentioned on the page was the current URL instead of the URL passed to resolve(). Fixed by using the path attribute from the Resolver404 exception instead of request.path_info. Also cleaned up the exceptions to use standard named parameters instead of stuffing a dict in args[0] --- tests/urlpatterns_reverse/tests.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'tests/urlpatterns_reverse') diff --git a/tests/urlpatterns_reverse/tests.py b/tests/urlpatterns_reverse/tests.py index a7fb342da7..6b0d5f37c6 100644 --- a/tests/urlpatterns_reverse/tests.py +++ b/tests/urlpatterns_reverse/tests.py @@ -272,10 +272,10 @@ class ResolverTests(unittest.TestCase): self.fail('resolve did not raise a 404') except Resolver404 as e: # make sure we at least matched the root ('/') url resolver: - self.assertTrue('tried' in e.args[0]) - tried = e.args[0]['tried'] - self.assertEqual(len(e.args[0]['tried']), len(url_types_names), 'Wrong number of tried URLs returned. Expected %s, got %s.' % (len(url_types_names), len(e.args[0]['tried']))) - for tried, expected in zip(e.args[0]['tried'], url_types_names): + self.assertTrue(hasattr(e, 'tried')) + tried = e.tried + self.assertEqual(len(tried), len(url_types_names), 'Wrong number of tried URLs returned. Expected %s, got %s.' % (len(url_types_names), len(tried))) + for tried, expected in zip(tried, url_types_names): for t, e in zip(tried, expected): self.assertIsInstance(t, e['type']), str('%s is not an instance of %s') % (t, e['type']) if 'name' in e: -- cgit v1.3