def test_numericrange_filter_apply_filter(self):
        qs = Book.objects.all()

        # exclusive
        params1 = MultiValueDict({'price': ['3.50..4.00']})
        filter1 = NumericRangeFilter('price', Book, params1)
        qs_filtered1 = filter1.apply_filter(qs)
        self.assertEqual(list(qs_filtered1),
                         list(qs.filter(price__gt=Decimal('3.50'),
                                        price__lt=Decimal('4.00'))))

        # inclusive
        params2 = MultiValueDict({'price': ['3.50i..4.00i']})
        filter2 = NumericRangeFilter('price', Book, params2)
        qs_filtered2 = filter2.apply_filter(qs)
        self.assertEqual(list(qs_filtered2),
                         list(qs.filter(price__gte=Decimal('3.50'),
                                        price__lte=Decimal('4.00'))))
Пример #2
0
    def test_numericrange_filter_drilldown(self):
        # Can specify to turn off drilldown
        # We shouldn't get drilldown if ranges is specified manually.

        params1 = MultiValueDict({'price': ['3.50i..5.00i']})
        filter1 = NumericRangeFilter('price', Book, params1, drilldown=False)

        qs = Book.objects.all()
        qs_filtered1 = filter1.apply_filter(qs)
        choices = filter1.get_choices(qs_filtered1)
        self.assertEqual(len(choices), 1)
        self.assertEqual(choices[0].link_type, FILTER_REMOVE)
    def test_numericrange_filter_drilldown(self):
        # Can specify to turn off drilldown
        # We shouldn't get drilldown if ranges is specified manually.

        params1 = MultiValueDict({'price': ['3.50i..5.00i']})
        filter1 = NumericRangeFilter('price', Book, params1, drilldown=False)

        qs = Book.objects.all()
        qs_filtered1 = filter1.apply_filter(qs)
        choices = filter1.get_choices(qs_filtered1)
        self.assertEqual(len(choices), 1)
        self.assertEqual(choices[0].link_type, FILTER_REMOVE)
Пример #4
0
    def test_numericrange_filter_apply_filter(self):
        qs = Book.objects.all()

        # exclusive
        params1 = MultiValueDict({'price': ['3.50..4.00']})
        filter1 = NumericRangeFilter('price', Book, params1)
        qs_filtered1 = filter1.apply_filter(qs)
        self.assertEqual(
            list(qs_filtered1),
            list(
                qs.filter(price__gt=Decimal('3.50'),
                          price__lt=Decimal('4.00'))))

        # inclusive
        params2 = MultiValueDict({'price': ['3.50i..4.00i']})
        filter2 = NumericRangeFilter('price', Book, params2)
        qs_filtered2 = filter2.apply_filter(qs)
        self.assertEqual(
            list(qs_filtered2),
            list(
                qs.filter(price__gte=Decimal('3.50'),
                          price__lte=Decimal('4.00'))))