def test_import_line(dbsession, csv_datas, association_handler): from autonomie.csv_import import CsvImporter, DEFAULT_ID_LABEL from autonomie.models.user import UserDatas association_dict = { u"Status": u"situation_situation", u'PRénom': 'coordonnees_firstname', u'Nom': 'coordonnees_lastname', u'Email 1': 'coordonnees_email1', } association_handler.set_association_dict(association_dict) line = csv_datas.next() importer = CsvImporter(dbsession, UserDatas, get_buffer(), association_handler) res, msg = importer.import_line(line.copy()) assert res.coordonnees_firstname == u'Bienaimé' assert res.coordonnees_lastname == u'Arthur' assert res.situation_situation.label == u"Réunion d'information" assert sorted(importer.unhandled_datas[0].keys()) == sorted( [DEFAULT_ID_LABEL, 'Unknown']) assert importer.in_error_lines == [] # We pop a mandatory argument association_dict.pop('Nom') association_handler.set_association_dict(association_dict) from autonomie.exception import MissingMandatoryArgument with pytest.raises(MissingMandatoryArgument): importer = CsvImporter(dbsession, UserDatas, get_buffer(), association_handler)
def test_identification_key(dbsession, association_handler, userdata): """ Test if we use another key than "id" to identify the duplicate entries """ from autonomie.csv_import import CsvImporter from autonomie.models.user import UserDatas association_dict = { 'firstname': 'coordonnees_firstname', 'email': "coordonnees_email1", 'test': 'coordonnees_emergency_name', } association_handler.set_association_dict(association_dict) importer = CsvImporter( dbsession, UserDatas, get_buffer(), association_handler, action="update", id_key="coordonnees_email1", ) # Ici on utilise le même mail new_datas = {'email': "*****@*****.**", 'test': u"Emergency Contact"} res, msg = importer.import_line(new_datas) assert res.coordonnees_lastname == u'lastname' assert res.coordonnees_emergency_name == u"Emergency Contact"
def test_override_line(dbsession, association_handler, userdata): from autonomie.csv_import import CsvImporter from autonomie.models.user import UserDatas association_dict = { 'firstname': 'coordonnees_firstname', 'email': 'coordonnees_email2', } association_handler.set_association_dict(association_dict) importer = CsvImporter(dbsession, UserDatas, get_buffer(), association_handler, action="override") new_datas = { 'id': str(userdata.id), 'firstname': u"Jane", 'email': "*****@*****.**" } res, msg = importer.import_line(new_datas) assert res.coordonnees_lastname == u'lastname' assert res.coordonnees_firstname == u'Jane' assert res.coordonnees_email2 == '*****@*****.**'