def test_transfer_all(self): sources = [ FMSource("McGonagall, Minerva", 40, "Gryffindor"), FMSource("Flitwick, Filius", 40, "Ravenclaw"), FMSource("Sprout, Pomona", 40, "Hufflepuff"), FMSource("Snape, Severus", 40, "Slytherin") ] fms = [fn_fm, ln_fm, age_fm, house_fm] d1 = list(FieldMapping.transfer_all(fms, sources, lambda d: FMDest(**d))) self.assertEqual(len(d1), 4) self.assertIsInstance(d1[0], FMDest) self.assertEqual(d1[0].first_name, "Minerva") d2 = list(FieldMapping.transfer_all(fms, sources)) self.assertEqual(len(d2), 4) self.assertIsInstance(d2[0], dict) self.assertEqual(d2[-1]["last_name"], "Snape") d3 = list(FieldMapping.transfer_all(fms, sources, FieldMapping.get_namedtuple_factory(fms))) self.assertEqual(len(d3), 4) self.assertEqual(d3[0].first_name, "Minerva")
def test_get_namedtuple_factory(self): fms = [fn_fm, ln_fm, age_fm, house_fm] ntf = FieldMapping.get_namedtuple_factory(fms) nt = ntf(dict(first_name="Vernon", last_name="Dursley", age=35, house_name="Privet Drive")) for fm in fms: self.assertTrue(hasattr(nt, fm.destination_name))