Example #1
0
  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)
Example #2
0
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)
Example #3
0
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)