-
Notifications
You must be signed in to change notification settings - Fork 0
/
CalendarTestGetDetailedEvent.py
141 lines (121 loc) · 5.47 KB
/
CalendarTestGetDetailedEvent.py
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
import unittest
import Calendar
# NOTE: ALL THE TESTS HERE ARE FOR THE get_detailed_events METHOD IN Calendar.py
# Test Strategy : MC/DC Coverage
class CalendarTestGetDetailedEvent(unittest.TestCase):
def test_get_detailed_event_raise_value_error(self):
event = {
'irrelevant': "nonsense"
}
with self.assertRaises(ValueError):
Calendar.get_detailed_event(event)
def test_get_detailed_event_raise_attribute_error(self):
event = "FAKE EVENT"
with self.assertRaises(AttributeError):
Calendar.get_detailed_event(event)
def test_get_detailed_event_no_visibility_set_attendees_set_no_location_set(self):
# This test for the events that have no visibility key aka
# default visibility
event = {
"summary": "Debate",
"start": {
"dateTime": "2020-06-10T02:00:00.000000Z"
},
"end": {
"dateTime": "2020-06-10T02:45:00.000000Z"
}, "reminders": {
'useDefault': True,
'overrides': [
]
},
"status": "confirmed",
'creator': {'email': '[email protected]', 'self': True},
'created': '2020-10-09T04:10:47.000Z',
'attendees': [{'email': '[email protected]', 'responseStatus': 'needsAction'},
{'email': '[email protected]', 'responseStatus': 'needsAction'}],
}
detailed_event = Calendar.get_detailed_event(event)
# Attendees are included in the event but not visiblity or location
# Asserts the presence of string information of attendees
self.assertIn("Attendees: [email protected], [email protected]", detailed_event)
def test_get_detailed_event_visibility_set_no_attendees_set_no_location_set(self):
# This test for the events that have no visibility key aka
# default visibility
event = {
"summary": "Debate",
"start": {
"dateTime": "2020-06-10T02:00:00.000000Z"
},
"end": {
"dateTime": "2020-06-10T02:45:00.000000Z"
}, "reminders": {
'useDefault': True,
'overrides': [
]
},
"status": "confirmed",
'creator': {'email': '[email protected]', 'self': True},
'created': '2020-10-09T04:10:47.000Z',
'visibility': "private",
}
detailed_event = Calendar.get_detailed_event(event)
# Assert this method output change where visiblity is part of the event
self.assertIn("Visibility: private", detailed_event)
def test_get_detailed_event_no_visibility_set_no_attendees_set_location_set(self):
# This test for the events that have no visibility key aka
# default visibility
event = {
"summary": "Debate",
"start": {
"dateTime": "2020-06-10T02:00:00.000000Z"
},
"end": {
"dateTime": "2020-06-10T02:45:00.000000Z"
}, "reminders": {
'useDefault': True,
'overrides': [
]
},
"status": "confirmed",
'creator': {'email': '[email protected]', 'self': True},
'created': '2020-10-09T04:10:47.000Z',
'location': 'Monash University, Wellington Rd, Clayton VIC 3800, Australia',
'attendees': [{'email': '[email protected]', 'responseStatus': 'needsAction'},
{'email': '[email protected]', 'responseStatus': 'needsAction'}],
}
detailed_event = Calendar.get_detailed_event(event)
# Assert this method output change where location is included in the event
self.assertIn("Location: Monash University, Wellington Rd, Clayton VIC 3800, Australia", detailed_event)
def test_get_detailed_event_visibility_set_attendees_set_location_set(self):
# This test for the events that have no visibility key aka
# default visibility
event = {
"summary": "Debate",
"start": {
"dateTime": "2020-06-10T02:00:00.000000Z"
},
"end": {
"dateTime": "2020-06-10T02:45:00.000000Z"
}, "reminders": {
'useDefault': True,
'overrides': [
]
},
"status": "confirmed",
'creator': {'email': '[email protected]', 'self': True},
'created': '2020-10-09T04:10:47.000Z',
'visibility': "private",
'location': 'Monash University, Wellington Rd, Clayton VIC 3800, Australia',
'attendees': [{'email': '[email protected]', 'responseStatus': 'needsAction'},
{'email': '[email protected]', 'responseStatus': 'needsAction'}],
}
detailed_event = Calendar.get_detailed_event(event)
# Assert all keys found succesfully and string containing the information is printed
self.assertIn("Visibility: private", detailed_event)
self.assertIn("Location: Monash University, Wellington Rd, Clayton VIC 3800, Australia", detailed_event)
self.assertIn("Attendees: [email protected], [email protected]", detailed_event)
def main():
suite = unittest.TestLoader().loadTestsFromTestCase(CalendarTestGetDetailedEvent)
# This will run the test suite.
unittest.TextTestRunner(verbosity=2).run(suite)
main()