Skip to content

Commit 01af177

Browse files
author
Ryan P Kilby
committed
Add test for multiwidget caveat
1 parent 0c5112c commit 01af177

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

tests/test_filtering.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from rest_framework_filters.compat import set_many
88
from rest_framework_filters import FilterSet, filters
9+
from django_filters import FilterSet as DFFilterSet
910

1011
from .testapp.models import (
1112
User, Note, Post, Cover, A, B, C, Person, Tag, BlogPost,
@@ -324,3 +325,46 @@ def test_related_filters_caching(self):
324325
self.assertIn('_related_filters', PostFilter.__dict__)
325326

326327
self.assertEqual(len(filters), 1)
328+
329+
330+
class MiscTests(TestCase):
331+
def test_multiwidget_incompatibility(self):
332+
Person.objects.create(name='A')
333+
334+
# test django-filter functionality
335+
class PersonFilter(DFFilterSet):
336+
date_joined = filters.DateFromToRangeFilter(name='date_joined')
337+
338+
class Meta:
339+
model = Person
340+
fields = ['date_joined']
341+
342+
# Test from ... to 2016-01-01
343+
GET = {
344+
'date_joined_1': '2016-01-01',
345+
}
346+
f = PersonFilter(GET, queryset=Person.objects.all())
347+
self.assertEqual(f.qs.count(), 0)
348+
349+
# test drf-filters caveat
350+
class PersonFilter(FilterSet):
351+
date_joined = filters.DateFromToRangeFilter(name='date_joined')
352+
353+
class Meta:
354+
model = Person
355+
fields = ['date_joined']
356+
357+
# Test from ... to 2016-01-01, failure case
358+
GET = {
359+
'date_joined_1': '2016-01-01',
360+
}
361+
f = PersonFilter(GET, queryset=Person.objects.all())
362+
self.assertEqual(f.qs.count(), 1)
363+
364+
# Test from ... to 2016-01-01, "fix"
365+
GET = {
366+
'date_joined_1': '2016-01-01',
367+
'date_joined': '',
368+
}
369+
f = PersonFilter(GET, queryset=Person.objects.all())
370+
self.assertEqual(f.qs.count(), 0)

0 commit comments

Comments
 (0)