agenda: fix sync_desks_timeperiod_exceptions command (#40497)
This commit is contained in:
parent
58727dce45
commit
7062e587fb
|
@ -19,6 +19,7 @@ from __future__ import print_function
|
|||
import sys
|
||||
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.db.models import Q
|
||||
|
||||
from chrono.agendas.models import ICSError, TimePeriodExceptionSource
|
||||
|
||||
|
@ -35,7 +36,7 @@ class Command(BaseCommand):
|
|||
u'unable to create timeperiod exceptions for "%s": %s' % (source.desk, e), file=sys.stderr
|
||||
)
|
||||
|
||||
for source in TimePeriodExceptionSource.objects.filter(ics_url__isnull=True).exclude(ics_file=''):
|
||||
for source in TimePeriodExceptionSource.objects.filter(ics_url__isnull=True).exclude(Q(ics_file='') | Q(ics_file__isnull=True)):
|
||||
try:
|
||||
source.desk.import_timeperiod_exceptions_from_ics_file(source.ics_file, source=source)
|
||||
except ICSError as e:
|
||||
|
|
|
@ -413,8 +413,18 @@ def test_sync_desks_timeperiod_exceptions_from_ics(mocked_get, capsys):
|
|||
assert import_remote_ics.call_args_list == []
|
||||
assert import_file_ics.call_args_list == [mock.call(mock.ANY, source=source)]
|
||||
|
||||
source.ics_file.delete()
|
||||
source.save()
|
||||
TimePeriodExceptionSource.objects.update(ics_file='')
|
||||
with mock.patch(
|
||||
'chrono.agendas.models.Desk.import_timeperiod_exceptions_from_remote_ics'
|
||||
) as import_remote_ics:
|
||||
with mock.patch(
|
||||
'chrono.agendas.models.Desk.import_timeperiod_exceptions_from_ics_file'
|
||||
) as import_file_ics:
|
||||
call_command('sync_desks_timeperiod_exceptions')
|
||||
assert import_remote_ics.call_args_list == []
|
||||
assert import_file_ics.call_args_list == []
|
||||
|
||||
TimePeriodExceptionSource.objects.update(ics_file=None)
|
||||
with mock.patch(
|
||||
'chrono.agendas.models.Desk.import_timeperiod_exceptions_from_remote_ics'
|
||||
) as import_remote_ics:
|
||||
|
|
Loading…
Reference in New Issue