def test_query_filters_datetimefield(self): request = self.request_factory.get('/api/bar') bvs = BarViewSet() request.query_params = QueryDict( urlencode({'created__year': date.today().year})) bvs.request = request self.assertEqual( len( self.lookup_filter.filter_queryset(request, Bar.objects.all(), bvs)), 4) request.query_params = QueryDict( urlencode({ 'date__year': 2014, 'created__month': date.today().month })) bvs.request = request self.assertEqual( len( self.lookup_filter.filter_queryset(request, Bar.objects.all(), bvs)), 1) # Failed filter request.query_params = QueryDict( urlencode({'created__istartswith': 10})) self.assertEqual( len( self.lookup_filter.filter_queryset(request, Bar.objects.all(), bvs)), 4)
def test_query_filters_decimalfield(self): request = self.request_factory.get('/api/bar') bvs = BarViewSet() request.query_params = QueryDict(urlencode({'price__gte': 20})) bvs.request = request self.assertEqual( len( self.lookup_filter.filter_queryset(request, Bar.objects.all(), bvs)), 3) # Failed filter request.query_params = QueryDict(urlencode({'price__istartswith': 10})) self.assertEqual( len( self.lookup_filter.filter_queryset(request, Bar.objects.all(), bvs)), 4)
def test_query_filters_autofield(self): request = self.request_factory.get('/api/bar') bvs = BarViewSet() request.query_params = QueryDict(urlencode({'id__startswith': '99999'})) bvs.request = request self.assertEqual( len( self.lookup_filter.filter_queryset(request, Bar.objects.all(), bvs)), 1) request.query_params = QueryDict(urlencode({'id__exact': '999999'})) self.assertEqual( len( self.lookup_filter.filter_queryset(request, Bar.objects.all(), bvs)), 1)
def test_query_filters_charfield(self): request = self.request_factory.get('/api/bar') bvs = BarViewSet() request.query_params = QueryDict(urlencode({'name__icontains': 'bar1'})) bvs.request = request self.assertEqual( len( self.lookup_filter.filter_queryset(request, Bar.objects.all(), bvs)), 1) # Failed filter request.query_params = QueryDict(urlencode({'name__range': 10})) self.assertEqual( len( self.lookup_filter.filter_queryset(request, Bar.objects.all(), bvs)), 4)
def test_query_filters_isnull(self): request = self.request_factory.get('/api/bar') bvs = BarViewSet() for val in TRUE_VALUES: request.query_params = QueryDict(urlencode({'date__isnull': val})) bvs.request = request self.assertEqual( len( self.lookup_filter.filter_queryset(request, Bar.objects.all(), bvs)), 1) for val in FALSE_VALUES: request.query_params = QueryDict(urlencode({'date__isnull': val})) bvs.request = request self.assertEqual( len( self.lookup_filter.filter_queryset(request, Bar.objects.all(), bvs)), 3)