summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJannis Leidel <jannis@leidel.info>2011-05-03 13:52:39 +0000
committerJannis Leidel <jannis@leidel.info>2011-05-03 13:52:39 +0000
commit05b4f2ebc2f547d2413f738551f9933aae0d34dc (patch)
tree7b004559cdfbdf094f7cd7a1f3f80df3aeefe338 /tests
parent950e05c3ff5daa360c3bddb84831d40b167062f1 (diff)
Corrected the behavior of the SimpleFilter.lookups method to also be able to return None. Also modified example in documentation to be a bite more realistic. Refs #5833. Thanks for the hint, Martin Mahner.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16150 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
-rw-r--r--tests/regressiontests/admin_filters/tests.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/regressiontests/admin_filters/tests.py b/tests/regressiontests/admin_filters/tests.py
index b1bd6ded5f..6b32475a64 100644
--- a/tests/regressiontests/admin_filters/tests.py
+++ b/tests/regressiontests/admin_filters/tests.py
@@ -43,6 +43,11 @@ class DecadeListFilterWithoutTitle(DecadeListFilter):
class DecadeListFilterWithoutParameter(DecadeListFilter):
title = 'publication decade'
+class DecadeListFilterWithNoneReturningLookups(DecadeListFilterWithTitleAndParameter):
+
+ def lookups(self, request):
+ pass
+
class CustomUserAdmin(UserAdmin):
list_filter = ('books_authored', 'books_contributed')
@@ -60,6 +65,9 @@ class DecadeFilterBookAdminWithoutTitle(ModelAdmin):
class DecadeFilterBookAdminWithoutParameter(ModelAdmin):
list_filter = (DecadeListFilterWithoutParameter,)
+class DecadeFilterBookAdminWithNoneReturningLookups(ModelAdmin):
+ list_filter = (DecadeListFilterWithNoneReturningLookups,)
+
class ListFiltersTests(TestCase):
def setUp(self):
@@ -453,3 +461,14 @@ class ListFiltersTests(TestCase):
self.assertRaisesRegexp(ImproperlyConfigured,
"The list filter 'DecadeListFilterWithoutParameter' does not specify a 'parameter_name'.",
self.get_changelist, request, Book, modeladmin)
+
+ def test_simplelistfilter_with_none_returning_lookups(self):
+ """
+ A SimpleListFilter lookups method can return None but disables the
+ filter completely.
+ """
+ modeladmin = DecadeFilterBookAdminWithNoneReturningLookups(Book, site)
+ request = self.request_factory.get('/', {})
+ changelist = self.get_changelist(request, Book, modeladmin)
+ filterspec = changelist.get_filters(request)[0]
+ self.assertEqual(len(filterspec), 0)