passerelle/tests/test_cron.py

26 lines
874 B
Python

from unittest import mock
import pytest
from django.core.management import call_command
from django.core.management.base import CommandError
from passerelle.apps.base_adresse.models import BaseAdresse
def test_cron_frequencies(db):
for frequency in ('every5min', 'hourly', 'daily', 'weekly', 'monthly'):
call_command('cron', frequency)
with pytest.raises(CommandError):
call_command('cron', 'randomly')
def test_cron_error(db, caplog):
BaseAdresse.objects.create(slug='base-adresse')
excep = Exception('hello')
with mock.patch(
'passerelle.apps.base_adresse.models.AddressResource.hourly', new=mock.Mock(side_effect=excep)
):
with pytest.raises(CommandError):
call_command('cron', 'hourly')
assert caplog.records[0].message == 'connector "base-adresse.base-adresse" error running hourly job'