add tests for invalid schedules

This commit is contained in:
Simon 2024-08-01 17:55:17 +02:00
parent 3d12fe7b5e
commit 308d5a0a61
No known key found for this signature in database
GPG Key ID: 2C15AA5E89985DD4
3 changed files with 68 additions and 0 deletions

View File

View File

@ -0,0 +1,68 @@
"""test schedule parsing"""
# flake8: noqa: E402
import os
import django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")
django.setup()
import pytest
from task.src.config_schedule import CrontabValidator
INCORRECT_CRONTAB = [
"0 0 * * *",
"0 0",
"0",
]
@pytest.mark.parametrize("invalid_value", INCORRECT_CRONTAB)
def test_invalid_len(invalid_value):
"""raise error on invalid crontab"""
validator = CrontabValidator()
with pytest.raises(ValueError, match="three cron schedule fields"):
validator.validate_cron(invalid_value)
NONE_INT_MINUTE = [
"* * *",
"0,30 * *",
"0,1,2 * *",
"-1 * *",
]
@pytest.mark.parametrize("invalid_value", NONE_INT_MINUTE)
def test_none_int_crontabs(invalid_value):
"""raise error on invalid crontab"""
validator = CrontabValidator()
with pytest.raises(ValueError, match="Must be an integer."):
validator.validate_cron(invalid_value)
INVALID_MINUTE = ["60 * *", "61 * *"]
@pytest.mark.parametrize("invalid_value", INVALID_MINUTE)
def test_invalid_minute(invalid_value):
"""raise error on invalid crontab"""
validator = CrontabValidator()
with pytest.raises(ValueError, match="Must be between 0 and 59."):
validator.validate_cron(invalid_value)
INVALID_CRONTAB = [
"0 /1 *",
"0 0/1 *",
]
@pytest.mark.parametrize("invalid_value", INVALID_CRONTAB)
def test_invalid_crontab(invalid_value):
"""raise error on invalid crontab"""
validator = CrontabValidator()
with pytest.raises(ValueError, match="invalid crontab"):
validator.validate_cron(invalid_value)