Esempio n. 1
0
class ActivityFilterSet(FilterSet):
    subjects = SubjectFilter()

    num_people = NumericRangeFilter(widget=RangeWidget(attrs={
        'min': 0,
        'max': 40
    }),
                                    lookup_expr='overlap')

    duration = IncludeNullNumericRangeFilter(widget=RangeWidget(attrs={
        'min': 0,
        'max': 360
    }),
                                             lookup_expr='range')

    class Meta:
        model = Activity
        fields = [
            'subjects', 'location', 'group_feature', 'num_people', 'duration'
        ]
 def test_zero_to_zero(self):
     qs = mock.Mock(spec=['filter'])
     value = mock.Mock(start=0, stop=0)
     f = NumericRangeFilter()
     f.filter(qs, value)
     qs.filter.assert_called_once_with(None__exact=(0, 0))
 def test_filtering_lower_field_higher_than_upper_field(self):
     qs = mock.Mock(spec=['filter'])
     value = mock.Mock(start=35, stop=30)
     f = NumericRangeFilter()
     result = f.filter(qs, value)
     self.assertEqual(qs, result)
 def test_field_with_lookup_type(self):
     qs = mock.Mock()
     value = mock.Mock(start=20, stop=30)
     f = NumericRangeFilter(lookup_type=('overlap'))
     f.filter(qs, value)
     qs.filter.assert_called_once_with(None__overlap=(20, 30))
 def test_filtering_skipped_with_none_value(self):
     qs = mock.Mock(spec=['filter'])
     f = NumericRangeFilter()
     result = f.filter(qs, None)
     self.assertEqual(qs, result)
 def test_filtering_exclude(self):
     qs = mock.Mock(spec=['exclude'])
     value = mock.Mock(start=20, stop=30)
     f = NumericRangeFilter(exclude=True)
     f.filter(qs, value)
     qs.exclude.assert_called_once_with(None__exact=(20, 30))
 def test_filtering(self):
     qs = mock.Mock(spec=['filter'])
     value = mock.Mock(start=20, stop=30)
     f = NumericRangeFilter()
     f.filter(qs, value)
     qs.filter.assert_called_once_with(None__exact=(20, 30))
 def test_default_field(self):
     f = NumericRangeFilter()
     field = f.field
     self.assertIsInstance(field, RangeField)
Esempio n. 9
0
 def test_filtering_startswith(self):
     qs = mock.Mock(spec=['filter'])
     value = mock.Mock(start=20, stop=None)
     f = NumericRangeFilter()
     f.filter(qs, value)
     qs.filter.assert_called_once_with(None__startswith=20)