Beispiel #1
0
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"
Beispiel #2
0
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)
Beispiel #3
0
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"
Beispiel #4
0
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 == '*****@*****.**'
Beispiel #5
0
def test_import_line(dbsession, csv_datas, association_handler):
    from autonomie.csv_import import CsvImporter
    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(['id', '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
        )
Beispiel #6
0
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 == '*****@*****.**'