import unittest from validation import validate_config class ConfigValidationTest(unittest.TestCase): def test_optional_fields_must_be_strings(self) -> None: config = { "start_date": "2026-02-04", "start_time": "15:00", "repo_url": 123, "organizer_email": ["not", "a", "string"], "uid_namespace": {"bad": "type"}, "blocked_weeks": [], "blocked_dates": [], "skip_day_after_ascension": False, } with self.assertRaises(ValueError) as ctx: validate_config(config) message = str(ctx.exception) self.assertIn("repo_url skal være en streng", message) self.assertIn("organizer_email skal være en streng", message) self.assertIn("uid_namespace skal være en streng", message) def test_optional_fields_accept_none_or_missing(self) -> None: config = { "start_date": "2026-02-04", "start_time": "15:00", "blocked_weeks": [], "blocked_dates": [], "skip_day_after_ascension": False, "repo_url": None, } validated = validate_config(config) self.assertEqual(validated["start_date"], "2026-02-04")