manager: fix virtual agenda import (#45084)

This commit is contained in:
Lauréline Guérin 2020-07-21 14:48:42 +02:00
parent cbae56f0e1
commit 65c1766db4
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 19 additions and 1 deletions

View File

@ -312,7 +312,10 @@ class Agenda(models.Model):
excluded_timeperiod['agenda'] = agenda
TimePeriod.import_json(excluded_timeperiod).save()
for real_agenda in real_agendas:
real_agenda = Agenda.objects.get(slug=real_agenda['slug'], kind=real_agenda['kind'])
try:
real_agenda = Agenda.objects.get(slug=real_agenda['slug'], kind=real_agenda['kind'])
except Agenda.DoesNotExist:
raise AgendaImportError(_('The real agenda "%s" does not exist.') % real_agenda['slug'])
try:
vm, created = VirtualMember.objects.get_or_create(
virtual_agenda=agenda, real_agenda=real_agenda

View File

@ -305,6 +305,21 @@ def test_import_export_virtual_agenda_with_included_agenda(app):
)
def test_import_export_virtual_agenda_with_missing_agenda(app):
virtual_agenda = Agenda.objects.create(label='Virtual Agenda', kind='virtual')
foo_agenda = Agenda.objects.create(label='Foo', kind='meetings')
VirtualMember.objects.create(virtual_agenda=virtual_agenda, real_agenda=foo_agenda)
output = get_output_of_command('export_site')
payload = json.loads(output)
del payload['agendas'][0] # remove real agenda
virtual_agenda.delete()
foo_agenda.delete()
with pytest.raises(AgendaImportError) as excinfo:
import_site(payload, overwrite=False)
assert 'The real agenda "foo" does not exist.' in '%s' % excinfo.value
def test_import_export_desk_missing_fields(app, meetings_agenda):
output = get_output_of_command('export_site')
payload = json.loads(output)