Example #1
0
 def test2_insert_query(self):
     ''' Test inserts '''
     q = Query("test")
     q.insert(_id=1, success=True).execute()
     res = q.reset().where(_id=1).execute()
     self.assert_not_none(res)
     self.assert_equal(res.count(), 1)
     self.assert_equal(res[0]['_id'], 1)
     self.assert_equal(res[0]['success'], True)
Example #2
0
 def test01_get_all_query(self):
     ''' Test getAll '''
     res = Query("test").execute()
     self.assert_equal(res.count(), self.N)
     for k in range(self.N):
         item = res[k]
         self.assert_equal(item['param1'], k)
         self.assert_equal(item['param2'], "value%d" % k)
         self.assert_equal(item['param3'], (k%2==0))
Example #3
0
 def refresh(self):
     ''' Sync this object with its persisted version '''
     if not self._new:
         res = Query(self._col_name).where(_id=self.get_id()).execute()
         if not res or not res.count():
             raise Exception("%s does not exist any more" % self)
         o = res[0]
         for field in o:
             setattr(self, field, o[field])      
Example #4
0
 def delete(self):
     ''' Delete the persisted versions of this objects '''
     if len(self) > 0:
         cls = self.__getitem__(0).__class__
         if not hasattr(cls, 'getClassName'):
             raise Exception("Objects must extend BaseObject")
         obj_ids = map(lambda x: x.getId())
         q = Query(cls)
         q.where_in("_id", obj_ids)
         q.delete()
Example #5
0
 def _get_related_array(self, related_cls_name, values, relation_name=ID_ALIAS):
     ''' Fetch an array of related objects 
     related_cls_name:     Name of the class that is referenced
     values:               Reference values
     relation_name:        Foreign parameter that is referenced
     '''
     if not values:
         return None
     related_cls = _get_class_from_name(related_cls_name)
     q = Query(related_cls)
     q.where_in(relation_name, values)
     res = q.execute()
     if res and res.count() > 0:
         objs = list()
         for item in res:
             objs.append(related_cls.from_dict(item))
         return objs
Example #6
0
 def test02_get_sorted_and_limit_query(self):
     ''' Test sorted queries and limits '''
     q = Query("test")
     q.sort("param1", DESCENDING)
     q.limit(10)
     res = q.execute()
     self.assert_not_none(res)
     self.assert_equal(res.count(True), 10)
     for k in range(10):
         item = res[k]
         k2 = self.N - (k+1)
         self.assert_equal(item['param1'], k2)
         self.assert_equal(item['param2'], "value%d" % k2)
         self.assert_equal(item['param3'], (k2%2==0))