Пример #1
0
 def test_getitem(self):
     qs = TestObj.objects.filter(int_value__lt=50)
     pqs = PredicateQuerySet(qs)
     self.assertEqual(qs.count(), pqs.count())
     for i in range(qs.count()):
         self.assertEqual(qs[i], pqs[i])
     for i in range(qs.count()):
         for j in range(i + 1, qs.count()):
             self.assertEqual(list(qs[i:j]), list(pqs[i:j]))
Пример #2
0
 def test_getitem(self):
     qs = TestObj.objects.filter(int_value__lt=50)
     pqs = PredicateQuerySet(qs)
     self.assertEqual(qs.count(), pqs.count())
     for i in range(qs.count()):
         self.assertEqual(qs[i], pqs[i])
     for i in range(qs.count()):
         for j in range(i + 1, qs.count()):
             self.assertEqual(list(qs[i:j]), list(pqs[i:j]))
Пример #3
0
    def test_and(self):
        qs1 = TestObj.objects.filter(int_value__lt=50)
        qs2 = TestObj.objects.filter(int_value__gte=25)
        merged_qs = qs1 & qs2
        pqs1 = PredicateQuerySet(qs1)
        pqs2 = PredicateQuerySet(qs2)
        merged_pqs = pqs1 & pqs2
        self.assertResultsEqual(merged_qs, merged_pqs)

        char_filter = {'char_value__icontains': 'red'}
        merged_qs = qs1.filter(**char_filter) & qs2.filter(**char_filter)
        merged_pqs = pqs1.filter(**char_filter) & pqs2.filter(**char_filter)
        self.assertResultsEqual(merged_qs, merged_pqs)
Пример #4
0
 def __init__(self, queryset, predicatequeryset=None):
     """
     Args:
         queryset (django.db.models.QuerySet)
     """
     self.qs = queryset
     self.pqs = predicatequeryset or PredicateQuerySet(queryset)
Пример #5
0
    def test_and(self):
        qs1 = TestObj.objects.filter(int_value__lt=50)
        qs2 = TestObj.objects.filter(int_value__gte=25)
        merged_qs = qs1 & qs2
        pqs1 = PredicateQuerySet(qs1)
        pqs2 = PredicateQuerySet(qs2)
        merged_pqs = pqs1 & pqs2
        self.assertResultsEqual(merged_qs, merged_pqs)

        char_filter = {'char_value__icontains': 'red'}
        merged_qs = qs1.filter(**char_filter) & qs2.filter(**char_filter)
        merged_pqs = pqs1.filter(**char_filter) & pqs2.filter(**char_filter)
        self.assertResultsEqual(merged_qs, merged_pqs)