ungana

Unnamed repository; edit this file 'description' to name the repository.
Info | Log | Files | Refs | README

commit 6ba6a60f471fa5c60d853044d63edcc472dbd9f6
parent 82b8b9b131715f5b3307a21cf7751f6e25cba1e5
Author: Carlosokumu <carlosokumu254@gmail.com>
Date:   Mon,  8 Sep 2025 09:33:12 +0300

add ICalHelper tests

Diffstat:
Atests/ical/test_ical_helper.py | 61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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()