Changeset View
Changeset View
Standalone View
Standalone View
tests/unit/test-016-todo.py
Show First 20 Lines • Show All 182 Lines • ▼ Show 20 Lines | Due Time: 13:30 AM</text> | ||||
</valarm> | </valarm> | ||||
</components> | </components> | ||||
</vtodo> | </vtodo> | ||||
</components> | </components> | ||||
</vcalendar> | </vcalendar> | ||||
</icalendar> | </icalendar> | ||||
""" | """ | ||||
class TestTodoXML(unittest.TestCase): | class TestTodoXML(unittest.TestCase): | ||||
todo = Todo() | todo = Todo() | ||||
def assertIsInstance(self, _value, _type): | def assertIsInstance(self, _value, _type): | ||||
if hasattr(unittest.TestCase, 'assertIsInstance'): | if hasattr(unittest.TestCase, 'assertIsInstance'): | ||||
return unittest.TestCase.assertIsInstance(self, _value, _type) | return unittest.TestCase.assertIsInstance(self, _value, _type) | ||||
else: | else: | ||||
if (type(_value)) == _type: | if (type(_value)) == _type: | ||||
return True | return True | ||||
else: | else: | ||||
raise AssertionError, "%s != %s" % (type(_value), _type) | raise AssertionError("%s != %s" % (type(_value), _type)) | ||||
def test_001_minimal(self): | def test_001_minimal(self): | ||||
self.todo.set_summary("test") | self.todo.set_summary("test") | ||||
self.assertEqual("test", self.todo.get_summary()) | self.assertEqual("test", self.todo.get_summary()) | ||||
self.assertIsInstance(self.todo.__str__(), str) | self.assertIsInstance(self.todo.__str__(), str) | ||||
def test_002_full(self): | def test_002_full(self): | ||||
self.todo.set_summary("test full") | self.todo.set_summary("test full") | ||||
Show All 12 Lines | def test_010_load_from_xml(self): | ||||
self.assertEqual(str(todo.get_start()), "2014-08-18 18:00:00+02:00") | self.assertEqual(str(todo.get_start()), "2014-08-18 18:00:00+02:00") | ||||
self.assertEqual(todo.get_categories(), ['iTip']) | self.assertEqual(todo.get_categories(), ['iTip']) | ||||
self.assertEqual(todo.get_attendee_by_email("john@example.org").get_participant_status(), kolabformat.PartNeedsAction) | self.assertEqual(todo.get_attendee_by_email("john@example.org").get_participant_status(), kolabformat.PartNeedsAction) | ||||
self.assertIsInstance(todo.get_organizer(), kolabformat.ContactReference) | self.assertIsInstance(todo.get_organizer(), kolabformat.ContactReference) | ||||
self.assertEqual(todo.get_organizer().name(), "Thomas") | self.assertEqual(todo.get_organizer().name(), "Thomas") | ||||
self.assertEqual(todo.get_status(True), "IN-PROCESS") | self.assertEqual(todo.get_status(True), "IN-PROCESS") | ||||
self.assertEqual(todo.get_related_to(), "9F3E68BED4A94DA2A51EE589F7FDC6C8-A4BF5BBB9FEAA271") | self.assertEqual(todo.get_related_to(), "9F3E68BED4A94DA2A51EE589F7FDC6C8-A4BF5BBB9FEAA271") | ||||
def test_020_load_from_ical(self): | def test_020_load_from_ical(self): | ||||
ical_str = """BEGIN:VCALENDAR | ical_str = """BEGIN:VCALENDAR | ||||
VERSION:2.0 | VERSION:2.0 | ||||
PRODID:-//Roundcube//Roundcube libcalendaring 1.1.0//Sabre//Sabre VObject | PRODID:-//Roundcube//Roundcube libcalendaring 1.1.0//Sabre//Sabre VObject | ||||
2.1.3//EN | 2.1.3//EN | ||||
CALSCALE:GREGORIAN | CALSCALE:GREGORIAN | ||||
METHOD:REQUEST | METHOD:REQUEST | ||||
""" + ical_todo + "END:VCALENDAR" | """ + ical_todo + "END:VCALENDAR" | ||||
ical = icalendar.Calendar.from_ical(ical_str) | ical = icalendar.Calendar.from_ical(ical_str) | ||||
vtodo = ical.walk('VTODO')[0] | vtodo = ical.walk('VTODO')[0] | ||||
#print vtodo | # print vtodo | ||||
todo = todo_from_ical(ical.walk('VTODO')[0].to_ical()) | todo = todo_from_ical(ical.walk('VTODO')[0].to_ical()) | ||||
self.assertEqual(todo.get_summary(), "Sample Task assignment") | self.assertEqual(todo.get_summary(), "Sample Task assignment") | ||||
self.assertIsInstance(todo.get_start(), datetime.datetime) | self.assertIsInstance(todo.get_start(), datetime.datetime) | ||||
self.assertEqual(todo.get_percentcomplete(), 20) | self.assertEqual(todo.get_percentcomplete(), 20) | ||||
#print str(todo) | # print str(todo) | ||||
data = todo.to_dict() | data = todo.to_dict() | ||||
self.assertIsInstance(data['rrule'], dict) | self.assertIsInstance(data['rrule'], dict) | ||||
self.assertEqual(data['rrule']['freq'], 'MONTHLY') | self.assertEqual(data['rrule']['freq'], 'MONTHLY') | ||||
self.assertEqual(data['rrule']['interval'], 2) | self.assertEqual(data['rrule']['interval'], 2) | ||||
self.assertEqual(data['rrule']['byday'], '2MO,-1WE') | self.assertEqual(data['rrule']['byday'], '2MO,-1WE') | ||||
self.assertIsInstance(data['rrule']['until'], datetime.datetime) | self.assertIsInstance(data['rrule']['until'], datetime.datetime) | ||||
Show All 10 Lines | def test_021_as_string_itip(self): | ||||
self.assertEqual(vtodo['uid'], self.todo.get_uid()) | self.assertEqual(vtodo['uid'], self.todo.get_uid()) | ||||
self.assertEqual(vtodo['summary'], "test") | self.assertEqual(vtodo['summary'], "test") | ||||
self.assertEqual(vtodo['sequence'], 3) | self.assertEqual(vtodo['sequence'], 3) | ||||
self.assertEqual(vtodo['X-CUSTOM'], "check") | self.assertEqual(vtodo['X-CUSTOM'], "check") | ||||
self.assertIsInstance(vtodo['due'].dt, datetime.datetime) | self.assertIsInstance(vtodo['due'].dt, datetime.datetime) | ||||
self.assertIsInstance(vtodo['dtstamp'].dt, datetime.datetime) | self.assertIsInstance(vtodo['dtstamp'].dt, datetime.datetime) | ||||
def test_022_ical_with_attachment(self): | def test_022_ical_with_attachment(self): | ||||
todo = todo_from_ical(ical_todo_attachment) | todo = todo_from_ical(ical_todo_attachment) | ||||
vattachment = todo.get_attachments() | vattachment = todo.get_attachments() | ||||
self.assertEqual(len(vattachment), 1) | self.assertEqual(len(vattachment), 1) | ||||
attachment = vattachment[0] | attachment = vattachment[0] | ||||
self.assertEqual(attachment.mimetype(), 'image/png') | self.assertEqual(attachment.mimetype(), 'image/png') | ||||
Show All 11 Lines | def test_030_to_dict(self): | ||||
self.assertEqual(data['priority'], 1) | self.assertEqual(data['priority'], 1) | ||||
self.assertEqual(data['sequence'], 3) | self.assertEqual(data['sequence'], 3) | ||||
self.assertEqual(data['status'], 'IN-PROCESS') | self.assertEqual(data['status'], 'IN-PROCESS') | ||||
self.assertIsInstance(data['alarm'], list) | self.assertIsInstance(data['alarm'], list) | ||||
self.assertEqual(len(data['alarm']), 1) | self.assertEqual(len(data['alarm']), 1) | ||||
self.assertEqual(data['alarm'][0]['action'], 'DISPLAY') | self.assertEqual(data['alarm'][0]['action'], 'DISPLAY') | ||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
unittest.main() | unittest.main() | ||||
No newline at end of file |