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)
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))
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])
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()
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
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))