summaryrefslogtreecommitdiff
path: root/tests/admin_filters
diff options
context:
space:
mode:
authorrynomster <rmathee@gmail.com>2016-01-14 10:26:44 +0200
committerTim Graham <timograham@gmail.com>2016-02-02 12:04:14 -0500
commit468d8211df999845607c3bb163c859e428d39dea (patch)
tree6d70b1858620d8ce356b1a4cd650794a90b0a56e /tests/admin_filters
parent67907ed84569729f5b95d1ea265a5de402fdf012 (diff)
downloaddjango-468d8211df999845607c3bb163c859e428d39dea.tar.gz
Fixed #23971 -- Added "Has date"/"No date" choices for DateFieldListFilter.
Diffstat (limited to 'tests/admin_filters')
-rw-r--r--tests/admin_filters/tests.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/admin_filters/tests.py b/tests/admin_filters/tests.py
index 570353430d..eb9d1e7fd7 100644
--- a/tests/admin_filters/tests.py
+++ b/tests/admin_filters/tests.py
@@ -402,6 +402,37 @@ class ListFiltersTests(TestCase):
)
)
+ # Null/not null queries
+ request = self.request_factory.get('/', {'date_registered__isnull': 'True'})
+ changelist = self.get_changelist(request, Book, modeladmin)
+
+ # Make sure the correct queryset is returned
+ queryset = changelist.get_queryset(request)
+ self.assertEqual(queryset.count(), 1)
+ self.assertEqual(queryset[0], self.bio_book)
+
+ # Make sure the correct choice is selected
+ filterspec = changelist.get_filters(request)[0][4]
+ self.assertEqual(force_text(filterspec.title), 'date registered')
+ choice = select_by(filterspec.choices(changelist), 'display', 'No date')
+ self.assertEqual(choice['selected'], True)
+ self.assertEqual(choice['query_string'], '?date_registered__isnull=True')
+
+ request = self.request_factory.get('/', {'date_registered__isnull': 'False'})
+ changelist = self.get_changelist(request, Book, modeladmin)
+
+ # Make sure the correct queryset is returned
+ queryset = changelist.get_queryset(request)
+ self.assertEqual(queryset.count(), 3)
+ self.assertEqual(list(queryset), [self.gipsy_book, self.django_book, self.djangonaut_book])
+
+ # Make sure the correct choice is selected
+ filterspec = changelist.get_filters(request)[0][4]
+ self.assertEqual(force_text(filterspec.title), 'date registered')
+ choice = select_by(filterspec.choices(changelist), 'display', 'Has date')
+ self.assertEqual(choice['selected'], True)
+ self.assertEqual(choice['query_string'], '?date_registered__isnull=False')
+
@unittest.skipIf(
sys.platform.startswith('win'),
"Windows doesn't support setting a timezone that differs from the "