Beispiel #1
0
    def test_filter_span(self):
        queryset = QuerySet(Item)
        Item.objects.collection.drop()
        Item.objects.create(data=dict(id=101, ch='a', number=1))
        Item.objects.create(data=dict(id=102, ch='a', number=1))
        Item.objects.create(data=dict(id=103, ch='a', number=2))
        Item.objects.create(data=dict(id=104, ch='b', number=1))
        Item.objects.create(data=dict(id=105, ch='b', number=2))

        self.assertItemsEqual(
            queryset.filter(number=1).filter(ch='a').pluck('id'),
            [101, 102])
        self.assertItemsEqual(
            queryset.filter(number=2).filter(ch='b').pluck('id'),
            [105])
Beispiel #2
0
    def test_filter_span_another_queryset_with_previouse_filters(self):
        queryset = QuerySet(Item)

        queryset2 = queryset.filter(ch='a')
        self.assertEqual(queryset2.get_filters(), {'ch': 'a'})

        queryset3 = queryset2.filter(number=2)
        self.assertEqual(queryset3.get_filters(), {'ch': 'a', 'number': 2})
Beispiel #3
0
    def test_greater_less_than_equal(self):
        Item.objects.collection.drop()
        Item.objects.create(data={'id': 1, 'date': '2012-10-12', 'weight': 90})
        Item.objects.create(data={'id': 2, 'date': '2012-10-13', 'weight': 88})
        Item.objects.create(data={'id': 3, 'date': '2012-10-14', 'weight': 85})
        Item.objects.create(data={'id': 4, 'date': '2012-10-15', 'weight': 80})
        queryset = QuerySet(Item)

        self.assertItemsEqual(queryset.filter(date__gt='2012-10-13').pluck('id'),
            [3, 4])
        self.assertItemsEqual(queryset.filter(date__gte='2012-10-13').pluck('id'),
            [2, 3, 4])
        self.assertItemsEqual(queryset.filter(weight__gte=85,
            date__lt='2012-10-14').pluck('id'), [1, 2])
        self.assertItemsEqual(queryset.filter(weight__lte=88).pluck('id'),
            [2, 3, 4])
        self.assertItemsEqual(queryset.filter(id__lte=2, weight__gte=88).pluck('id'),
            [1, 2])
Beispiel #4
0
    def test_filter_contains(self):
        Item.objects.collection.drop()
        Item.objects.create(data={'title': 'Slayer'})
        Item.objects.create(data={'title': 'Sabaton'})
        Item.objects.create(data={'title': 'Metallica'})
        Item.objects.create(data={'title': 'Metal Foobar'})
        Item.objects.create(data={'title': 'Tristania'})

        queryset = QuerySet(Item)

        self.assertItemsEqual(queryset.filter(title__contains='metal').pluck(
            'title'), [])

        self.assertItemsEqual(queryset.filter(title__contains='Metal').pluck(
            'title'), ['Metallica', 'Metal Foobar'])

        self.assertItemsEqual(queryset.filter(title__icontains='metal').pluck(
            'title'), ['Metallica', 'Metal Foobar'])

        self.assertItemsEqual(queryset.filter(title__icontains='ta').pluck(
            'title'), ['Metallica', 'Metal Foobar', 'Tristania'])
Beispiel #5
0
 def test_filter_in(self):
     queryset = QuerySet(Item)
     self.assertItemsEqual(queryset.filter(id__in=[1, 3, 20, 40]).pluck('id'),
         [1, 3, 20])
Beispiel #6
0
    def test_filter(self):
        queryset = QuerySet(Item)

        self.assertItemsEqual(queryset.filter(id=10).pluck('id'), [10])
        self.assertItemsEqual(queryset.filter(number=0, id=10).pluck('id'), [10])