rsa13: keep csv columns value on edit (#73068)
This commit is contained in:
parent
021761b608
commit
0d2d076cba
|
@ -65,10 +65,17 @@ def dump_csv_columns(columns):
|
||||||
|
|
||||||
class RSA13Form(GenericConnectorForm):
|
class RSA13Form(GenericConnectorForm):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
kwargs['initial'] = {}
|
instance = kwargs.get('instance')
|
||||||
for name in RSA13Resource.CSV_EXPORTS:
|
if instance is None:
|
||||||
field = f'{name}_csv_columns'
|
kwargs['initial'] = {}
|
||||||
kwargs['initial'][field] = dump_csv_columns(DEFAULTS[field])
|
for name in RSA13Resource.CSV_EXPORTS:
|
||||||
|
field = f'{name}_csv_columns'
|
||||||
|
kwargs['initial'][field] = dump_csv_columns(DEFAULTS[field])
|
||||||
|
else:
|
||||||
|
for name in RSA13Resource.CSV_EXPORTS:
|
||||||
|
field = f'{name}_csv_columns'
|
||||||
|
if not getattr(instance, field):
|
||||||
|
setattr(instance, field, dump_csv_columns(DEFAULTS[field]))
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -200,12 +200,12 @@ def clear_cache():
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def simple_user():
|
def simple_user(db):
|
||||||
return User.objects.create_user('user', password='user')
|
return User.objects.create_user('user', password='user')
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def admin_user():
|
def admin_user(db):
|
||||||
return User.objects.create_superuser('admin', email=None, password='admin')
|
return User.objects.create_superuser('admin', email=None, password='admin')
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,9 @@ from django.db import connection
|
||||||
from django.db.migrations.executor import MigrationExecutor
|
from django.db.migrations.executor import MigrationExecutor
|
||||||
|
|
||||||
import tests.utils
|
import tests.utils
|
||||||
from passerelle.contrib.rsa13.models import RSA13Resource
|
from passerelle.contrib.rsa13.models import DEFAULTS, RSA13Resource, dump_csv_columns
|
||||||
|
|
||||||
|
from .test_manager import login
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
|
@ -1405,3 +1407,33 @@ def test_csv_columns_migration(transactional_db, settings):
|
||||||
assert resource.beneficiaire_csv_columns == 'A 2\nB'
|
assert resource.beneficiaire_csv_columns == 'A 2\nB'
|
||||||
assert resource.facturation_csv_columns == 'C\nD'
|
assert resource.facturation_csv_columns == 'C\nD'
|
||||||
assert resource.sorti_csv_columns == 'E\nF'
|
assert resource.sorti_csv_columns == 'E\nF'
|
||||||
|
|
||||||
|
|
||||||
|
def test_manager(app, admin_user):
|
||||||
|
app = login(app)
|
||||||
|
resp = app.get('/manage/')
|
||||||
|
resp = resp.click('Add Connector')
|
||||||
|
resp = resp.click('RSA CD13')
|
||||||
|
resp.forms[0]['title'] = 'Test Connector'
|
||||||
|
resp.forms[0]['slug'] = 'test-connector'
|
||||||
|
resp.forms[0]['description'] = 'Connector for a simple test'
|
||||||
|
resp.forms[0]['webservice_base_url'] = 'https://example.com/'
|
||||||
|
resp = resp.forms[0].submit().follow()
|
||||||
|
assert 'Test Connector' in resp.text
|
||||||
|
|
||||||
|
instance = RSA13Resource.objects.get()
|
||||||
|
for key, value in DEFAULTS.items():
|
||||||
|
assert getattr(instance, key) == dump_csv_columns(value)
|
||||||
|
|
||||||
|
resp = resp.click('Edit')
|
||||||
|
resp.form.set('beneficiaire_csv_columns', 'NUM_CAF')
|
||||||
|
resp.form.set('facturation_csv_columns', 'MATRICULE')
|
||||||
|
resp.form.set('sorti_csv_columns', 'NUM_CAF')
|
||||||
|
resp = resp.form.submit().follow()
|
||||||
|
instance = RSA13Resource.objects.get()
|
||||||
|
for key in DEFAULTS:
|
||||||
|
assert getattr(instance, key) in ['NUM_CAF', 'MATRICULE']
|
||||||
|
|
||||||
|
resp = resp.click('Edit')
|
||||||
|
for key in DEFAULTS:
|
||||||
|
assert resp.form[key].value in ['NUM_CAF', 'MATRICULE']
|
||||||
|
|
Loading…
Reference in New Issue