def testToListItemDict(self): """Tests whether correct is dict is returned for a db model.""" class Book(db.Model): item_freq = db.StringProperty() freq = db.IntegerProperty() details = db.TextProperty() released = db.BooleanProperty() owner = db.ReferenceProperty() class Author(db.Model): name = db.StringProperty() entity = Book() entity.item_freq = '5' entity.freq = 4 entity.details = 'Test Entity' entity.released = True entity.owner = Author(name='Foo Bar').put() entity.put() columns = [ ('details', lambda ent: ent.details), ('freq', lambda ent: '%s - %s' % (ent.item_freq, ent.freq)), ('released', lambda ent: "Yes" if ent.released else "No"), ('author', lambda ent: ent.owner.name) ] list_item_dict = lists.toListItemDict(entity, columns) expected_dict = {'details': 'Test Entity', 'freq': '5 - 4', 'released': 'Yes', 'author': 'Foo Bar'} self.assertEqual(list_item_dict, expected_dict)
def mapProcess(entity): # TODO: (Aruna) Fix this import from melange.utils import lists ctx = context.get() params = ctx.mapreduce_spec.mapper.params list_id = params['list_id'] col_funcs = [(c.col_id, c.getValue) for c in lists.getList(list_id).columns] query_pickle = params['query_pickle'] query = pickle.loads(query_pickle) data_id = lists.getDataId(query) if(query.filter('__key__', entity.key()).get()): item = json.dumps(lists.toListItemDict(entity, col_funcs)) yield (data_id, item)
def mapProcess(entity): # TODO: (Aruna) Fix this import from melange.utils import lists ctx = context.get() params = ctx.mapreduce_spec.mapper.params list_id = params['list_id'] col_funcs = [(c.col_id, c.getValue) for c in lists.getList(list_id).columns] query_pickle = params['query_pickle'] query = pickle.loads(query_pickle) data_id = lists.getDataId(query) if (query.filter('__key__', entity.key()).get()): item = json.dumps(lists.toListItemDict(entity, col_funcs)) yield (data_id, item)