agendas: ignore exception source on import if file is missing (#89873)
gitea/chrono/pipeline/head This commit looks good Details

This commit is contained in:
Valentin Deniaud 2024-04-23 13:37:16 +02:00
parent 88d8feacd8
commit 169dc0a69a
2 changed files with 9 additions and 0 deletions

View File

@ -3992,6 +3992,9 @@ class TimePeriodExceptionSource(WithInspectMixin, models.Model):
data['ics_file'] = ContentFile(base64.b64decode(data['ics_file']), name=data['ics_filename'])
except base64.binascii.Error:
raise AgendaImportError(_('Bad ics file'))
elif data.get('ics_filename'):
# filename but no file content, skip this source
return
desk = data.pop('desk')
settings_slug = data.pop('settings_slug')

View File

@ -927,6 +927,12 @@ def test_import_export_time_period_exception_source_ics_file(mocked_get):
import_site(payload)
assert '%s' % excinfo.value == 'Bad ics file'
Agenda.objects.all().delete()
payload['agendas'][0]['desks'][0]['exception_sources'][0]['ics_file'] = None
import_site(payload)
assert TimePeriodExceptionSource.objects.count() == 0
assert TimePeriodException.objects.count() == 0
@override_settings(
EXCEPTIONS_SOURCES={