def test_mapreduce_listify(self): source = self.session.get_collection("mapreduce_source") source.insert({"foo": "a", "bar": "z"}) source.insert({"foo": "a", "bar": "y"}) source.insert({"foo": "b", "bar": "z"}) source.insert({"foo": "c", "bar": "z"}) source.insert({"foo": "c", "bar": "x"}) source.insert({"foo": "c", "bar": "w"}) target = self.session.get_collection("mapreduce_target") utils.map_reduce_listify(self.session, source, target.name, "foo", "bar") self.assertEqual(target.count(), 3) self.assertEqual(target.find_one({"_id": "a"}), {"_id": "a", "bar": ["z","y"]})
def test_load_data_aggregated(self): tmp = tempfile.NamedTemporaryFile() for pair in zip("aabbccdd","12345678"): print >>tmp, "%s\t%s" % pair tmp.flush() AggregatedCollection.load_data(self.session, tmp.name) utils.map_reduce_listify(self.session, self.session.get_collection('adsdata_test_load'), 'adsdata_test', 'load_key', 'bar') self.assertEqual(self.session.query(AggregatedCollection).count(), 4, 'map-reduce loaded ') entry_a = self.session.query(AggregatedCollection).filter(AggregatedCollection.foo == 'a').first() self.assertTrue(entry_a is not None) self.assertEqual(entry_a.bar, ["1","2"])
def post_load_data(cls, session, source_collection): target_collection_name = cls.config_collection_name utils.map_reduce_listify(session, source_collection, target_collection_name, 'load_key', 'citations')