diff options
author | rynomster <rmathee@gmail.com> | 2016-01-14 10:26:44 +0200 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2016-02-02 12:04:14 -0500 |
commit | 468d8211df999845607c3bb163c859e428d39dea (patch) | |
tree | 6d70b1858620d8ce356b1a4cd650794a90b0a56e /tests/admin_filters | |
parent | 67907ed84569729f5b95d1ea265a5de402fdf012 (diff) | |
download | django-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.py | 31 |
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 " |