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)
def testWithDBQuery(self): """Tests getDataId function with db query objects.""" query = TestDBModel.all().filter('name', 'foo') same_query = TestDBModel.all().filter('name', 'foo') # queries that represent same data should have the same data id. self.assertEqual(lists.getDataId(query), lists.getDataId(same_query)) # queries that represent different data should have different data ids. different_query = TestDBModel.all().filter('name', 'bar') self.assertNotEqual(lists.getDataId(query), lists.getDataId(different_query)) different_query = TestDBModel.all().filter('value', 'bar') self.assertNotEqual(lists.getDataId(query), lists.getDataId(different_query))
def testWithNDBQuery(self): """Tests getDataId function with ndb query objects.""" query = TestNDBModel.query().filter(TestNDBModel.name == 'foo') same_query = TestNDBModel.query().filter(TestNDBModel.name == 'foo') # queries that represent same data should have same data id. self.assertEqual(lists.getDataId(query), lists.getDataId(same_query)) # queries that represent different data should have different data ids. different_query = TestNDBModel.query().filter(TestNDBModel.name == 'bar') self.assertNotEqual(lists.getDataId(query), lists.getDataId(different_query)) different_query = TestNDBModel.query().filter(TestNDBModel.value == 9) self.assertNotEqual(lists.getDataId(query), lists.getDataId(different_query))