test_utils.py•2.56 kB
"""Unit tests for utility functions."""
import sys
import os
# Add src to path
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "../src"))
from toggl_mcp.utils import validate_date_range, date_range
def test_validate_date_range_valid():
"""Test validation of valid date range."""
error = validate_date_range("2025-10-06", "2025-10-10")
assert error is None
def test_validate_date_range_same_date():
"""Test validation with same start and end date."""
error = validate_date_range("2025-10-06", "2025-10-06")
assert error is None
def test_validate_date_range_invalid_format():
"""Test validation with invalid date format."""
error = validate_date_range("10-06-2025", "2025-10-10")
assert error is not None
assert error["code"] == "INVALID_DATE_FORMAT"
def test_validate_date_range_reversed():
"""Test validation with end_date < start_date."""
error = validate_date_range("2025-10-10", "2025-10-06")
assert error is not None
assert error["code"] == "INVALID_DATE_RANGE"
def test_validate_date_range_exceeds_limit():
"""Test validation when date range exceeds 7 days."""
error = validate_date_range("2025-10-06", "2025-10-14") # 8 days
assert error is not None
assert error["code"] == "DATE_RANGE_EXCEEDS_LIMIT"
def test_validate_date_range_exactly_7_days():
"""Test validation with exactly 7 days."""
error = validate_date_range("2025-10-06", "2025-10-13") # 7 days
assert error is None
def test_date_range_single_day():
"""Test date_range with single day."""
dates = date_range("2025-10-06", "2025-10-06")
assert len(dates) == 1
assert dates[0] == "2025-10-06"
def test_date_range_multiple_days():
"""Test date_range with multiple days."""
dates = date_range("2025-10-06", "2025-10-10")
assert len(dates) == 5
assert dates[0] == "2025-10-06"
assert dates[-1] == "2025-10-10"
def test_date_range_consecutive():
"""Test that date_range returns consecutive dates."""
dates = date_range("2025-10-06", "2025-10-08")
assert dates == ["2025-10-06", "2025-10-07", "2025-10-08"]
if __name__ == "__main__":
test_validate_date_range_valid()
test_validate_date_range_same_date()
test_validate_date_range_invalid_format()
test_validate_date_range_reversed()
test_validate_date_range_exceeds_limit()
test_validate_date_range_exactly_7_days()
test_date_range_single_day()
test_date_range_multiple_days()
test_date_range_consecutive()
print("All utility tests passed!")