From 9b7455e918a437c3db91e88dcbf6d9c93fef96f8 Mon Sep 17 00:00:00 2001 From: Bouke Haarsma Date: Fri, 1 Nov 2013 21:15:41 +0100 Subject: Fixed #21351 -- Replaced memoize with Python's lru_cache. Replaced the custom, untested memoize with a similar decorator from Python's 3.2 stdlib. Although some minor performance degradation (see ticket), it is expected that in the long run lru_cache will outperform memoize once it is implemented in C. Thanks to EvilDMP for the report and Baptiste Mispelon for the idea of replacing memoize with lru_cache. --- tests/urlpatterns_reverse/tests.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'tests/urlpatterns_reverse') diff --git a/tests/urlpatterns_reverse/tests.py b/tests/urlpatterns_reverse/tests.py index b2a6d83443..b4056ac7fa 100644 --- a/tests/urlpatterns_reverse/tests.py +++ b/tests/urlpatterns_reverse/tests.py @@ -17,6 +17,7 @@ from django.test.utils import override_settings from django.utils import six from . import urlconf_outer, middleware, views +from .views import empty_view resolve_test_data = ( @@ -662,12 +663,20 @@ class ErroneousViewTests(TestCase): class ViewLoadingTests(TestCase): def test_view_loading(self): + self.assertEqual(get_callable('urlpatterns_reverse.views.empty_view'), + empty_view) + + # passing a callable should return the callable + self.assertEqual(get_callable(empty_view), empty_view) + + def test_exceptions(self): # A missing view (identified by an AttributeError) should raise # ViewDoesNotExist, ... - six.assertRaisesRegex(self, ViewDoesNotExist, ".*View does not exist in.*", - get_callable, - 'urlpatterns_reverse.views.i_should_not_exist') + six.assertRaisesRegex(self, ViewDoesNotExist, + ".*View does not exist in.*", + get_callable, + 'urlpatterns_reverse.views.i_should_not_exist') # ... but if the AttributeError is caused by something else don't # swallow it. self.assertRaises(AttributeError, get_callable, - 'urlpatterns_reverse.views_broken.i_am_broken') + 'urlpatterns_reverse.views_broken.i_am_broken') -- cgit v1.3