Files
cron-parser-cli/tests/test_generator.py
7000pctAUTO ab02f42200
Some checks failed
CI / test (push) Has been cancelled
Add test files
2026-02-01 15:10:15 +00:00

80 lines
2.9 KiB
Python

"""Tests for interactive cron generator."""
import pytest
from unittest.mock import patch, MagicMock
from cronparse.generator import (
prompt_specific_values,
prompt_specific_dow_values,
)
class TestPromptSpecificValues:
"""Tests for prompt_specific_values function."""
@patch("cronparse.generator.click")
def test_enter_done_immediately(self, mock_click):
"""Test that entering 'done' immediately uses default value."""
mock_click.prompt.side_effect = ["done"]
result = prompt_specific_values("test", 1, 10)
assert result == [1]
@patch("cronparse.generator.click")
def test_enter_single_value(self, mock_click):
"""Test entering a single specific value."""
mock_click.prompt.side_effect = ["5", "done"]
result = prompt_specific_values("test", 1, 10)
assert result == [5]
@patch("cronparse.generator.click")
def test_enter_multiple_values(self, mock_click):
"""Test entering multiple specific values."""
mock_click.prompt.side_effect = ["3", "7", "9", "done"]
result = prompt_specific_values("test", 1, 10)
assert result == [3, 7, 9]
@patch("cronparse.generator.click")
def test_duplicate_value_not_added(self, mock_click):
"""Test that duplicate values are not added."""
mock_click.prompt.side_effect = ["5", "5", "done"]
result = prompt_specific_values("test", 1, 10)
assert result == [5]
@patch("cronparse.generator.click")
def test_invalid_value_shows_error(self, mock_click):
"""Test that invalid values show error and continue."""
mock_click.prompt.side_effect = ["invalid", "5", "done"]
result = prompt_specific_values("test", 1, 10)
assert result == [5]
class TestPromptSpecificDowValues:
"""Tests for prompt_specific_dow_values function."""
@patch("cronparse.generator.click")
def test_enter_done_immediately(self, mock_click):
"""Test that entering 'done' immediately uses default (0=Sunday)."""
mock_click.prompt.side_effect = ["done"]
result = prompt_specific_dow_values()
assert result == [0]
@patch("cronparse.generator.click")
def test_enter_single_day(self, mock_click):
"""Test entering a single day of week."""
mock_click.prompt.side_effect = ["1", "done"]
result = prompt_specific_dow_values()
assert result == [1]
@patch("cronparse.generator.click")
def test_enter_multiple_days(self, mock_click):
"""Test entering multiple days of week."""
mock_click.prompt.side_effect = ["1", "3", "5", "done"]
result = prompt_specific_dow_values()
assert result == [1, 3, 5]
@patch("cronparse.generator.click")
def test_invalid_day_shows_error(self, mock_click):
"""Test that invalid day shows error."""
mock_click.prompt.side_effect = ["7", "1", "done"]
result = prompt_specific_dow_values()
assert result == [1]