Beispiel #1
0
    def test_query_is_hashable(self):
        store = IterableStore([])
        manager = store.query(TestModel)
        qs = manager.filter((TestModel.order > 1) & (TestModel.order < 12))
        qs = qs.order_by(TestModel.a, ~TestModel.order)

        query = qs.query
        query.hints['aggregates'] = (aggregates.Sum('value'), )
        a1 = query
        a2 = a1.clone()

        self.assertEqual(hash(a1), hash(a2))
Beispiel #2
0
    def test_field_exists(self):

        families = [{
            'name': 'Community',
            'postal_adress': 'Greendale',
        }, {
            'name': 'Misfits',
        }]

        class Family(lifter.models.Model):
            pass

        manager = IterableStore(families).query(Family)

        self.assertEqual(manager.filter(Family.postal_adress.exists()),
                         [families[0]])
        self.assertEqual(manager.filter(~Family.postal_adress.exists()),
                         [families[1]])
Beispiel #3
0
    def setUp(self):
        self.cache = caches.DummyCache()

        PARENTS = [
            TestModel(name='parent_1'),
            TestModel(name='parent_2'),
        ]
        OBJECTS = [
            TestModel(name='test_1',
                      order=2,
                      a=1,
                      parent=PARENTS[0],
                      label='alabama',
                      surname='Mister T'),
            TestModel(name='test_2',
                      order=3,
                      a=1,
                      parent=PARENTS[0],
                      label='arkansas',
                      surname='Colonel'),
            TestModel(name='test_3',
                      order=1,
                      a=2,
                      parent=PARENTS[1],
                      label='texas',
                      surname='Lincoln'),
            TestModel(name='test_4',
                      order=4,
                      a=2,
                      parent=PARENTS[1],
                      label='washington',
                      surname='clint'),
        ]
        self.store = IterableStore(OBJECTS,
                                   identifier='test',
                                   cache=self.cache)
        self.manager = self.store.query(TestModel)
Beispiel #4
0
 def test_model(self):
     manager = IterableStore(self.OBJECTS).query(TestModel)
     self.assertEqual(manager.filter(TestModel.a == 1), self.OBJECTS[:2])
Beispiel #5
0
 def setUp(self):
     self.manager = IterableStore(self.OBJECTS).query(TestModel)
     self.dict_manager = IterableStore(self.DICTS).query(TestModel)
Beispiel #6
0
 def setUp(self):
     class TestModel(lifter.models.Model):
         pass
     self.manager = IterableStore(self.OBJECTS).query(TestModel)
     self.dict_manager = IterableStore(self.DICTS).query(TestModel)
Beispiel #7
0
 def exclude(self, *args, **kwargs):
     all_objects = self.all()
     store = IterableStore(all_objects)
     manager = store.query(self)
     return manager.exclude(*args, **kwargs)
Beispiel #8
0
 def all(self):
     all_instances = [self.klass(eid=i.eid, **i) for i in self._table.all()]
     store = IterableStore(all_instances)
     manager = store.query(self)
     return manager.all()