Beispiel #1
0
 def test_multiple_key_subset_querying(self):
     for model in (models.Item, models.GeoItem):
         self._create_items(model)
         for keys in (['a'], ['a', 'b']):
             self.assertEqual(
                 model.objects.filter(HQ(data__contains=keys)).count(), 3)
         for keys in (['a', 'z'], ['z', 'y']):
             self.assertEqual(
                 model.objects.filter(HQ(data__contains=keys)).count(), 0)
Beispiel #2
0
 def test_single_key_querying(self):
     for model in (models.Item, models.GeoItem):
         self._create_items(model)
         for key in ('a', 'b'):
             self.assertEqual(
                 model.objects.filter(HQ(data__contains=key)).count(), 3)
         for key in ('y', 'z'):
             self.assertEqual(
                 model.objects.filter(HQ(data__contains=key)).count(), 0)
Beispiel #3
0
 def test_key_value_subset_querying(self):
     for model in (models.Item, models.GeoItem):
         for item in self._create_items(model):
             r = model.objects.filter(HQ(data__a=item.data['a']))
             self.assertEqual(len(r), 1)
             self.assertEqual(r[0], item)
             r = model.objects.filter(
                 HQ(data__a=item.data['a'], data__b=item.data['b']))
             self.assertEqual(len(r), 1)
             self.assertEqual(r[0], item)
Beispiel #4
0
 def test_float_range_query(self):
     for model in (models.Item, models.GeoItem):
         self._create_items(model)
         self.assertEqual(
             model.objects.filter(HQ(data__c__lt=0.33)).count(), 1)
         self.assertEqual(
             model.objects.filter(HQ(data__c__lte=0.33)).count(), 2)
         self.assertEqual(
             model.objects.filter(HQ(data__c__gt=0.33)).count(), 1)
         self.assertEqual(
             model.objects.filter(HQ(data__c__gte=0.33)).count(), 2)
Beispiel #5
0
 def test_in_query(self):
     for model in (models.Item, models.GeoItem):
         self._create_items(model)
         self.assertEqual(
             model.objects.filter(HQ(data__a__in=['0'])).count(), 0)
         self.assertEqual(
             model.objects.filter(HQ(data__a__in=['1'])).count(), 1)
         self.assertEqual(
             model.objects.filter(HQ(data__a__in=['1', '2'])).count(), 2)
         self.assertEqual(
             model.objects.filter(HQ(data__a__in=['1', '2', '3'])).count(),
             3)
Beispiel #6
0
 def test_related_query(self):
     a = models.Item.objects.create(name='a',
                                    data={
                                        'a': '1',
                                        'b': '4',
                                        'c': '0',
                                        'd': '2012-01-01 00:01',
                                        'e': '2012-01-01',
                                        'f': '00:01'
                                    })
     models.Related.objects.create(item=a)
     self.assertEqual(
         models.Related.objects.filter(HQ(item__data__a=1)).count(), 1)
     self.assertEqual(
         models.Related.objects.filter(HQ(item__data__a=2)).count(), 0)
Beispiel #7
0
 def test_combine_hq(self):
     self._create_items(models.Item)
     self.assertEqual(
         models.Item.objects.filter(HQ(data__a='1')
                                    & HQ(data__a='2')).count(), 0)
     self.assertEqual(
         models.Item.objects.filter(HQ(data__a='1')
                                    | HQ(data__a='2')).count(), 2)
     self.assertEqual(
         models.Item.objects.filter(HQ(data__a__lt=3)
                                    & ~HQ(data__a='2')).count(), 1)
     self.assertEqual(
         models.Item.objects.filter(Q(name='a')
                                    & Q(HQ(data__a='1'))).count(), 1)
Beispiel #8
0
 def test_time_range_query(self):
     for model in (models.Item, models.GeoItem):
         self._create_items(model)
         self.assertEqual(
             model.objects.filter(
                 HQ(data__f__lt=datetime.time(0, 0))).count(), 0)
         self.assertEqual(
             model.objects.filter(
                 HQ(data__f__gt=datetime.time(23, 0))).count(), 0)
         d = datetime.time(1, 30)
         self.assertEqual(
             model.objects.filter(HQ(data__f__lt=d)).count(), 1)
         self.assertEqual(
             model.objects.filter(HQ(data__f__lte=d)).count(), 2)
         self.assertEqual(
             model.objects.filter(HQ(data__f__gt=d)).count(), 1)
         self.assertEqual(
             model.objects.filter(HQ(data__f__gte=d)).count(), 2)
Beispiel #9
0
 def test_date_range_query(self):
     for model in (models.Item, models.GeoItem):
         self._create_items(model)
         self.assertEqual(
             model.objects.filter(
                 HQ(data__e__lt=datetime.date(2011, 12, 31))).count(), 0)
         self.assertEqual(
             model.objects.filter(
                 HQ(data__e__gt=datetime.date(2012, 3, 1))).count(), 0)
         d = datetime.date(2012, 1, 2)
         self.assertEqual(
             model.objects.filter(HQ(data__e__lt=d)).count(), 1)
         self.assertEqual(
             model.objects.filter(HQ(data__e__lte=d)).count(), 2)
         self.assertEqual(
             model.objects.filter(HQ(data__e__gt=d)).count(), 1)
         self.assertEqual(
             model.objects.filter(HQ(data__e__gte=d)).count(), 2)