commit 6ba6a60f471fa5c60d853044d63edcc472dbd9f6
parent 82b8b9b131715f5b3307a21cf7751f6e25cba1e5
Author: Carlosokumu <carlosokumu254@gmail.com>
Date: Mon, 8 Sep 2025 09:33:12 +0300
add ICalHelper tests
Diffstat:
1 file changed, 61 insertions(+), 0 deletions(-)
diff --git a/tests/ical/test_ical_helper.py b/tests/ical/test_ical_helper.py
@@ -0,0 +1,61 @@
+import os
+import unittest
+from datetime import datetime, timedelta, timezone
+from icalendar import Calendar, Event
+from ungana.ical.ical_helper import ICalHelper
+
+
+class TestICalHelper(unittest.TestCase):
+
+ def setUp(self):
+ self.cal = Calendar()
+ self.event = Event()
+ self.event.add("UID", "12345")
+ self.event.add("DTSTART", datetime(2025, 9, 6, 10, 0, tzinfo=timezone.utc))
+ self.event.add("DTEND", datetime(2025, 9, 6, 11, 0, tzinfo=timezone.utc))
+ self.event.add("SUMMARY", "Gophers Meetup")
+ self.cal.add_component(self.event)
+
+ def test_update_event_summary(self):
+ updates = {"SUMMARY": "Gophers Weekly Meetup"}
+ updated = ICalHelper.update_event(self.cal, updates)
+ ev = ICalHelper.get_first_event(updated)
+ self.assertEqual(str(ev["SUMMARY"]), "Gophers Weekly Meetup")
+
+ def test_update_event_with_url_role(self):
+ updates = {"URL;ROLE=HOST": "http://gophers.org"}
+ updated = ICalHelper.update_event(self.cal, updates)
+ ev = ICalHelper.get_first_event(updated)
+ urls = ev.get("URL")
+ self.assertIn("HOST", urls.params["ROLE"])
+
+ def test_get_first_event_and_all_events(self):
+ first = ICalHelper.get_first_event(self.cal)
+ self.assertEqual(str(first["SUMMARY"]), "Gophers Meetup")
+ all_events = ICalHelper.get_all_events(self.cal)
+ self.assertEqual(len(all_events), 1)
+
+ def test_normalize_ical_field_datetime_with_tzid(self):
+ dt = datetime(2025, 9, 6, 10, 0) # naive
+ normalized = ICalHelper.normalize_ical_field(dt, "UTC")
+ self.assertIsNotNone(normalized.tzinfo)
+
+ def test_check_existing_event_true(self):
+ exists = ICalHelper.check_existing_event(self.cal, self.event)
+ self.assertTrue(exists)
+
+ def test_check_existing_event_false(self):
+ ev = Event()
+ ev.add("DTSTART", datetime(2025, 9, 7, 10, 0, tzinfo=timezone.utc))
+ ev.add("DTEND", datetime(2025, 9, 7, 11, 0, tzinfo=timezone.utc))
+ ev.add("SUMMARY", "Gophers meetup")
+ exists = ICalHelper.check_existing_event(self.cal, ev)
+ self.assertFalse(exists)
+
+ def test_update_event_invalid_calendar(self):
+ with self.assertRaises(ValueError):
+ ICalHelper.update_event(None, {"SUMMARY": "x"})
+
+
+if __name__ == "__main__":
+ unittest.main()