agendas: fix import event crashing with nested quotes (#66187)
This commit is contained in:
parent
9b2c59b025
commit
dcb8aed83a
|
@ -1043,6 +1043,7 @@ class ImportEventsForm(forms.Form):
|
|||
|
||||
try:
|
||||
dialect = csv.Sniffer().sniff(content)
|
||||
dialect.doublequote = True
|
||||
except csv.Error:
|
||||
dialect = None
|
||||
|
||||
|
|
|
@ -995,6 +995,37 @@ def test_import_events(app, admin_user):
|
|||
assert 'Identifier:' in resp.text # verbose_name is shown, not field name ('slug:')
|
||||
|
||||
|
||||
def test_import_event_nested_quotes(app, admin_user):
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.save()
|
||||
app = login(app)
|
||||
|
||||
resp = app.get('/manage/agendas/%s/import-events' % agenda.id, status=200)
|
||||
resp.form['events_csv_file'] = Upload(
|
||||
't.csv',
|
||||
','.join(
|
||||
[
|
||||
"2016-09-16",
|
||||
"18:00",
|
||||
"10",
|
||||
"5",
|
||||
"éléphant",
|
||||
"elephant",
|
||||
# the multiline description and final dot
|
||||
# and new line after ""éléphants"" are needed to trigger the bug.
|
||||
'''"Animation:
|
||||
De nombreux ""éléphants"".
|
||||
"''',
|
||||
]
|
||||
).encode(),
|
||||
'text/csv',
|
||||
)
|
||||
|
||||
resp = resp.form.submit(status=302)
|
||||
assert Event.objects.count() == 1
|
||||
assert 'De nombreux "éléphants"' in Event.objects.all()[0].description
|
||||
|
||||
|
||||
def test_import_events_existing_event(app, admin_user, freezer):
|
||||
agenda = Agenda.objects.create(label='Foo bar')
|
||||
Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
|
||||
|
|
Loading…
Reference in New Issue