1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
import datetime
import pytz
import sys
import unittest
from pykolab.xml import Attendee
from pykolab.xml import Event
from pykolab.xml import EventIntegrityError
from pykolab.xml import InvalidAttendeeParticipantStatusError
from pykolab.xml import InvalidEventDateError
class TestEventXML(unittest.TestCase):
event = Event()
def test_000_no_start_date(self):
self.assertRaises(EventIntegrityError, self.event.__str__)
def test_001_minimal(self):
self.event.set_start(datetime.datetime.now(pytz.timezone("Europe/London")))
self.assertIsInstance(self.event.get_start(), datetime.datetime)
self.assertIsInstance(self.event.__str__(), basestring)
def test_002_attendees_list(self):
self.assertIsInstance(self.event.get_attendees(), list)
def test_003_attendees_no_default(self):
self.assertEqual(len(self.event.get_attendees()), 0)
def test_004_attendee_add(self):
self.event.add_attendee("john@doe.org")
self.assertIsInstance(self.event.get_attendees(), list)
self.assertEqual(len(self.event.get_attendees()), 1)
def test_005_attendee_add_name(self):
self.event.add_attendee("jane@doe.org", "Doe, Jane")
self.assertIsInstance(self.event.get_attendees(), list)
self.assertEqual(len(self.event.get_attendees()), 2)
def test_006_get_attendees(self):
self.assertEqual([x.get_email() for x in self.event.get_attendees()], ["john@doe.org", "jane@doe.org"])
def test_007_get_attendee_by_email(self):
self.assertIsInstance(self.event.get_attendee_by_email("jane@doe.org"), Attendee)
self.assertIsInstance(self.event.get_attendee("jane@doe.org"), Attendee)
def test_007_get_nonexistent_attendee_by_email(self):
self.assertRaises(ValueError, self.event.get_attendee_by_email, "nosuchattendee@invalid.domain")
self.assertRaises(ValueError, self.event.get_attendee, "nosuchattendee@invalid.domain")
def test_008_get_attendee_by_name(self):
self.assertIsInstance(self.event.get_attendee_by_name("Doe, Jane"), Attendee)
self.assertIsInstance(self.event.get_attendee("Doe, Jane"), Attendee)
def test_008_get_nonexistent_attendee_by_name(self):
self.assertRaises(ValueError, self.event.get_attendee_by_name, "Houdini, Harry")
self.assertRaises(ValueError, self.event.get_attendee, "Houdini, Harry")
def test_009_invalid_participant_status(self):
self.assertRaises(InvalidAttendeeParticipantStatusError, self.event.set_attendee_participant_status, "jane@doe.org", "INVALID")
def test_010_datetime_from_string(self):
self.assertRaises(InvalidEventDateError, self.event.set_start, "2012-05-23 11:58:00")
def test_011_attendee_equality(self):
self.assertEqual(self.event.get_attendee("jane@doe.org").get_email(), "jane@doe.org")
def test_012_delegate_new_attendee(self):
self.event.delegate("jane@doe.org", "max@imum.com")
def test_013_delegatee_is_now_attendee(self):
self.assertIsInstance(self.event.get_attendee("max@imum.com"), Attendee)
def test_014_delegate_attendee_adds(self):
self.assertEqual(len(self.event.get_attendee("jane@doe.org").get_delegated_to()), 1)
self.event.delegate("jane@doe.org", "john@doe.org")
self.assertEqual(len(self.event.get_attendee("jane@doe.org").get_delegated_to()), 2)
def test_015_timezone(self):
_tz = self.event.get_start()
self.assertIsInstance(_tz.tzinfo, datetime.tzinfo)
def test_016_start_with_timezone(self):
_start = datetime.datetime(2012, 05, 23, 11, 58, 00, tzinfo=pytz.timezone("Europe/Zurich"))
_start_utc = _start.astimezone(pytz.utc)
self.assertEqual(_start.__str__(), "2012-05-23 11:58:00+01:00")
self.assertEqual(_start_utc.__str__(), "2012-05-23 10:58:00+00:00")
self.event.set_start(_start)
self.assertIsInstance(_start.tzinfo, datetime.tzinfo)
self.assertEqual(_start.tzinfo, pytz.timezone("Europe/Zurich"))
def test_017_allday_without_timezone(self):
_start = datetime.date(2012, 05, 23)
self.assertEqual(_start.__str__(), "2012-05-23")
self.event.set_start(_start)
self.assertEqual(hasattr(_start,'tzinfo'), False)
self.assertEqual(self.event.get_start().__str__(), "2012-05-23")
if __name__ == '__main__':
unittest.main()
|