Projet

Général

Profil

0001-csv_import-import-validated-date-field-35800.patch

Nicolas Roche, 11 septembre 2019 17:55

Télécharger (3,28 ko)

Voir les différences:

Subject: [PATCH] csv_import: import validated date field (#35800)

 src/authentic2/csv_import.py |  2 +-
 tests/test_user_manager.py   | 22 +++++++++++++++++-----
 2 files changed, 18 insertions(+), 6 deletions(-)
src/authentic2/csv_import.py
442 442
            CsvCell(
443 443
                line=line,
444 444
                header=header,
445
                value=data.get(header.name),
445
                value=form.cleaned_data.get(header.name),
446 446
                missing=header.name not in data,
447 447
                errors=get_form_errors(form, header.name))
448 448
            for header in self.headers]
tests/test_user_manager.py
222 222
@pytest.mark.parametrize('encoding', ['utf-8', 'cp1252', 'iso-8859-15'])
223 223
def test_user_import(encoding, transactional_db, app, admin, ou1, admin_ou1, media):
224 224
    Attribute.objects.create(name='phone', kind='phone_number', label='Numéro de téléphone')
225
    Attribute.objects.create(name='birthdate', kind='birthdate', label='Date de naissance')
226
    Attribute.objects.create(name='bike', kind='boolean', label='Vélo')
225 227

  
226 228
    user_count = User.objects.count()
227 229

  
228
    assert Attribute.objects.count() == 3
230
    assert Attribute.objects.count() == 5
229 231

  
230 232
    response = login(app, admin, '/manage/users/')
231 233

  
......
233 235
    response.form.set('import_file',
234 236
                      Upload(
235 237
                          'users.csv',
236
                          u'''email key verified,first_name,last_name,phone
237
tnoel@entrouvert.com,Thomas,Noël,1234
238
fpeters@entrouvert.com,Frédéric,Péters,5678
239
x,x,x,x'''.encode(encoding),
238
                          u'''email key verified,first_name,last_name,phone,birthdate,bike
239
tnoel@entrouvert.com,Thomas,Noël,1234,01/01/1970,1
240
fpeters@entrouvert.com,Frédéric,Péters,5678,1968-05-01,False
241
x,x,x,x,x,x'''.encode(encoding),
240 242
                          'application/octet-stream'))
241 243
    response.form.set('encoding', encoding)
242 244
    response.form.set('ou', str(get_default_ou().pk))
......
308 310
        last_name=u'Péters',
309 311
        attribute_values__content='5678').count() == 1
310 312

  
313
    thomas = User.objects.filter(email='tnoel@entrouvert.com')[0]
314
    assert thomas.attributes.values['phone'].content == '1234'
315
    assert thomas.attributes.values['birthdate'].content == '1970-01-01'
316
    assert thomas.attributes.values['bike'].content == '1'
317

  
318
    fred = User.objects.filter(email='fpeters@entrouvert.com')[0]
319
    assert fred.attributes.values['phone'].content == '5678'
320
    assert fred.attributes.values['birthdate'].content == '1968-05-01'
321
    assert fred.attributes.values['bike'].content == '0'
322

  
311 323
    # logout
312 324
    app.session.flush()
313 325
    response = login(app, admin_ou1, '/manage/users/')
314
-