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")