Files
fredagsbar-meeting-generator/tests/test_date_skipping.py

57 lines
1.8 KiB
Python

import unittest
from datetime import date
from validation import validate_config
from generator import is_blocked_date
class DateSkippingTest(unittest.TestCase):
def test_blocked_week_is_skipped(self) -> None:
target_date = date(2026, 2, 6)
config = validate_config(
{
"start_date": "2026-02-04",
"start_time": "15:00",
"blocked_weeks": [target_date.isocalendar()[1]],
"blocked_dates": [],
"skip_day_after_ascension": False,
}
)
blocked, reason = is_blocked_date(target_date, {}, config)
self.assertTrue(blocked)
self.assertIn("Ferieuge", reason or "")
def test_blocked_date_is_skipped(self) -> None:
target_date = date(2026, 2, 6)
config = validate_config(
{
"start_date": "2026-02-04",
"start_time": "15:00",
"blocked_weeks": [],
"blocked_dates": ["02-06"],
"skip_day_after_ascension": False,
}
)
blocked, reason = is_blocked_date(target_date, {}, config)
self.assertTrue(blocked)
self.assertEqual(reason, "Manuelt blokeret dato")
def test_day_after_ascension_is_skipped(self) -> None:
target_date = date(2026, 5, 15)
config = validate_config(
{
"start_date": "2026-02-04",
"start_time": "15:00",
"blocked_weeks": [],
"blocked_dates": [],
"skip_day_after_ascension": True,
}
)
holidays = {date(2026, 5, 14): "Kristi Himmelfart"}
blocked, reason = is_blocked_date(target_date, holidays, config)
self.assertTrue(blocked)
self.assertEqual(reason, "Dagen efter Kr. Himmelfart")