Projet

Général

Profil

0001-csv-link-attribute-object-to-relevant-headers-66053.patch

Paul Marillonnet, 06 décembre 2022 11:57

Télécharger (3,46 ko)

Voir les différences:

Subject: [PATCH 1/2] csv: link attribute object to relevant headers (#66053)

 src/authentic2/csv_import.py | 5 ++---
 tests/test_csv_import.py     | 9 ++++++---
 2 files changed, 8 insertions(+), 6 deletions(-)
src/authentic2/csv_import.py
191 191
    column = attrib()
192 192
    name = attrib(default='')
193 193
    field = attrib(default=False, converter=bool)
194
    attribute = attrib(default=False, converter=bool)
194
    attribute = attrib(default=None)
195 195
    create = attrib(default=True, metadata={'flag': True})
196 196
    update = attrib(default=True, metadata={'flag': True})
197 197
    key = attrib(default=False, metadata={'flag': True})
......
488 488
                    pass
489 489
                if not header.field:
490 490
                    try:
491
                        Attribute.objects.get(name=header.name)
492
                        header.attribute = True
491
                        header.attribute = Attribute.objects.get(name=header.name)
493 492
                    except Attribute.DoesNotExist:
494 493
                        pass
495 494

  
tests/test_csv_import.py
195 195
fpeters@entrouvert.com,Frédéric,Péters,5678
196 196
x,x,x,x'''
197 197
    importer = user_csv_importer_factory(content)
198
    phone = Attribute.objects.get(name='phone')
198 199

  
199 200
    assert importer.run(), importer.errors
200 201
    assert importer.headers == [
201 202
        CsvHeader(1, 'email', field=True, key=True, verified=True),
202 203
        CsvHeader(2, 'first_name', field=True),
203 204
        CsvHeader(3, 'last_name', field=True),
204
        CsvHeader(4, 'phone', attribute=True),
205
        CsvHeader(4, 'phone', attribute=phone),
205 206
    ]
206 207
    assert importer.has_errors
207 208
    assert len(importer.rows) == 3
......
245 246
fpeters@entrouvert.com,Frédéric,Péters,5678
246 247
x,x,x,x'''
247 248
    importer = user_csv_importer_factory(content)
249
    phone = Attribute.objects.get(name='phone')
248 250

  
249 251
    assert importer.run(simulate=True), importer.errors
250 252
    assert importer.headers == [
251 253
        CsvHeader(1, 'email', field=True, key=True, verified=True),
252 254
        CsvHeader(2, 'first_name', field=True),
253 255
        CsvHeader(3, 'last_name', field=True),
254
        CsvHeader(4, 'phone', attribute=True),
256
        CsvHeader(4, 'phone', attribute=phone),
255 257
    ]
256 258
    assert importer.has_errors
257 259
    assert len(importer.rows) == 3
......
428 430
app1,2,tnoel@entrouvert.com,Thomas,Noël,1234
429 431
'''
430 432
    importer = user_csv_importer_factory(content)
433
    phone = Attribute.objects.get(name='phone')
431 434

  
432 435
    assert importer.run(), importer.errors
433 436
    assert importer.headers == [
......
436 439
        CsvHeader(3, 'email', field=True, verified=True),
437 440
        CsvHeader(4, 'first_name', field=True),
438 441
        CsvHeader(5, 'last_name', field=True),
439
        CsvHeader(6, 'phone', attribute=True),
442
        CsvHeader(6, 'phone', attribute=phone),
440 443
    ]
441 444
    assert not importer.has_errors
442 445
    assert len(importer.rows) == 2
443
-