Projet

Général

Profil

0001-rsa13-keep-csv-columns-value-on-edit-73068.patch

Benjamin Dauvergne, 06 janvier 2023 11:29

Télécharger (3,78 ko)

Voir les différences:

Subject: [PATCH] rsa13: keep csv columns value on edit (#73068)

 passerelle/contrib/rsa13/models.py | 15 +++++++++----
 tests/conftest.py                  |  4 ++--
 tests/test_rsa13.py                | 34 +++++++++++++++++++++++++++++-
 3 files changed, 46 insertions(+), 7 deletions(-)
passerelle/contrib/rsa13/models.py
65 65

  
66 66
class RSA13Form(GenericConnectorForm):
67 67
    def __init__(self, *args, **kwargs):
68
        kwargs['initial'] = {}
69
        for name in RSA13Resource.CSV_EXPORTS:
70
            field = f'{name}_csv_columns'
71
            kwargs['initial'][field] = dump_csv_columns(DEFAULTS[field])
68
        instance = kwargs.get('instance')
69
        if instance is None:
70
            kwargs['initial'] = {}
71
            for name in RSA13Resource.CSV_EXPORTS:
72
                field = f'{name}_csv_columns'
73
                kwargs['initial'][field] = dump_csv_columns(DEFAULTS[field])
74
        else:
75
            for name in RSA13Resource.CSV_EXPORTS:
76
                field = f'{name}_csv_columns'
77
                if not getattr(instance, field):
78
                    setattr(instance, field, dump_csv_columns(DEFAULTS[field]))
72 79
        super().__init__(*args, **kwargs)
73 80

  
74 81

  
tests/conftest.py
200 200

  
201 201

  
202 202
@pytest.fixture
203
def simple_user():
203
def simple_user(db):
204 204
    return User.objects.create_user('user', password='user')
205 205

  
206 206

  
207 207
@pytest.fixture
208
def admin_user():
208
def admin_user(db):
209 209
    return User.objects.create_superuser('admin', email=None, password='admin')
210 210

  
211 211

  
tests/test_rsa13.py
26 26
from django.db.migrations.executor import MigrationExecutor
27 27

  
28 28
import tests.utils
29
from passerelle.contrib.rsa13.models import RSA13Resource
29
from passerelle.contrib.rsa13.models import DEFAULTS, RSA13Resource, dump_csv_columns
30

  
31
from .test_manager import login
30 32

  
31 33

  
32 34
@pytest.fixture
......
1405 1407
    assert resource.beneficiaire_csv_columns == 'A 2\nB'
1406 1408
    assert resource.facturation_csv_columns == 'C\nD'
1407 1409
    assert resource.sorti_csv_columns == 'E\nF'
1410

  
1411

  
1412
def test_manager(app, admin_user):
1413
    app = login(app)
1414
    resp = app.get('/manage/')
1415
    resp = resp.click('Add Connector')
1416
    resp = resp.click('RSA CD13')
1417
    resp.forms[0]['title'] = 'Test Connector'
1418
    resp.forms[0]['slug'] = 'test-connector'
1419
    resp.forms[0]['description'] = 'Connector for a simple test'
1420
    resp.forms[0]['webservice_base_url'] = 'https://example.com/'
1421
    resp = resp.forms[0].submit().follow()
1422
    assert 'Test Connector' in resp.text
1423

  
1424
    instance = RSA13Resource.objects.get()
1425
    for key in DEFAULTS:
1426
        assert getattr(instance, key) == dump_csv_columns(DEFAULTS[key])
1427

  
1428
    resp = resp.click('Edit')
1429
    resp.form.set('beneficiaire_csv_columns', 'NUM_CAF')
1430
    resp.form.set('facturation_csv_columns', 'MATRICULE')
1431
    resp.form.set('sorti_csv_columns', 'NUM_CAF')
1432
    resp = resp.form.submit().follow()
1433
    instance = RSA13Resource.objects.get()
1434
    for key in DEFAULTS:
1435
        assert getattr(instance, key) in ['NUM_CAF', 'MATRICULE']
1436

  
1437
    resp = resp.click('Edit')
1438
    for key in DEFAULTS:
1439
        assert resp.form[key].value in ['NUM_CAF', 'MATRICULE']
1408
-