diff options
Diffstat (limited to 'tests/test_vcal.py')
-rw-r--r-- | tests/test_vcal.py | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/tests/test_vcal.py b/tests/test_vcal.py index 42847b9..f820da2 100644 --- a/tests/test_vcal.py +++ b/tests/test_vcal.py @@ -30,15 +30,16 @@ RRULE:FREQ=YEARLY END:VEVENT END:VCALENDAR""" - class TestVcal(TestCase): - def assertSameICal(self, ical1, ical2): + def assertSameICal(self, ical1, ical2, ignore_uid=False): """helper method""" - def normalize(s): + def normalize(s, ignore_uid): s = to_wire(s).replace(b'\r\n',b'\n').strip().split(b'\n') s.sort() + if ignore_uid: + s = [x for x in s if not x.startswith(b'UID:')] return b"\n".join(s) - self.assertEqual(normalize(ical1), normalize(ical2)) + self.assertEqual(normalize(ical1, ignore_uid), normalize(ical2, ignore_uid)) return ical2 def verifyICal(self, ical): @@ -51,7 +52,7 @@ class TestVcal(TestCase): self.assertSameICal(icalobj.to_ical(), ical) self.assertSameICal(vobj.serialize(), ical) return icalobj.to_ical() - + ## TODO: create a test_fix, should be fairly simple - for each ## "fix" that's done in the code, make up some broken ical data ## that demonstrates the brokenness we're dealing with (preferably @@ -69,16 +70,26 @@ class TestVcal(TestCase): ## One may add stuff to a fully valid ical_fragment self.assertSameICal(create_and_validate(ical_fragment=ev, priority=3), ev+"\nPRIORITY:3\n") + ## binary string or unicode string ... shouldn't matter + self.assertSameICal(create_and_validate(ical_fragment=ev.encode('utf-8'), priority=3), ev+"\nPRIORITY:3\n") + ## The returned ical_fragment should always contain BEGIN:VCALENDAR and END:VCALENDAR ical_fragment = ev.replace('BEGIN:VCALENDAR', '').replace('END:VCALENDAR', '') self.assertSameICal(create_and_validate(ical_fragment=ical_fragment), ev) - + ## Create something with a dtstart and verify that we get it back in the ical - some_ical = create_and_validate(summary="gobledok", dtstart=datetime(2032,10,10,10,10,10, tzinfo=utc), duration=timedelta(hours=5)) - self.assertTrue(b'DTSTART;VALUE=DATE-TIME:20321010T101010Z' in some_ical) + some_ical0 = create_and_validate(summary="gobledok", dtstart=datetime(2032,10,10,10,10,10, tzinfo=utc), duration=timedelta(hours=5)) + some_ical1 = create_and_validate(summary=b"gobledok", dtstart=datetime(2032,10,10,10,10,10, tzinfo=utc), duration=timedelta(hours=5)) + self.assertTrue(b'DTSTART;VALUE=DATE-TIME:20321010T101010Z' in some_ical0) + self.assertSameICal(some_ical0, some_ical1, ignore_uid=True) ## Verify that ical_fragment works as intended some_ical = create_and_validate(summary="gobledok", ical_fragment="PRIORITY:3", dtstart=datetime(2032,10,10,10,10,10, tzinfo=utc), duration=timedelta(hours=5)) self.assertTrue(b'DTSTART;VALUE=DATE-TIME:20321010T101010Z' in some_ical) - + + some_ical = create_and_validate(summary="gobledok", ical_fragment=b"PRIORITY:3", dtstart=datetime(2032,10,10,10,10,10, tzinfo=utc), duration=timedelta(hours=5)) + self.assertTrue(b'DTSTART;VALUE=DATE-TIME:20321010T101010Z' in some_ical) + + some_ical = create_and_validate(summary=b"gobledok", ical_fragment="", dtstart=datetime(2032,10,10,10,10,10, tzinfo=utc), duration=timedelta(hours=5)) + self.assertTrue(b'DTSTART;VALUE=DATE-TIME:20321010T101010Z' in some_ical) |