1139 |
1139 |
mocked_get.side_effect = mocked_requests_http_ssl_error
|
1140 |
1140 |
resp = resp.form.submit(status=200)
|
1141 |
1141 |
assert 'Failed to retrieve remote calendar (SSL error).' in resp.content
|
|
1142 |
|
|
1143 |
|
|
1144 |
@mock.patch('chrono.manager.forms.now', lambda: datetime.datetime(2017, 5, 20, 10, 23))
|
|
1145 |
def test_prevent_time_period_changes_when_bookings_exist(app, admin_user):
|
|
1146 |
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
|
1147 |
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
|
1148 |
meeting_type = MeetingType(agenda=agenda, label='Blah', duration=30)
|
|
1149 |
meeting_type.save()
|
|
1150 |
timeperiod = TimePeriod.objects.create(
|
|
1151 |
weekday=1, desk=desk, start_time=datetime.time(8, 00), end_time=datetime.time(11, 0))
|
|
1152 |
event = Event.objects.create(agenda=agenda, places=1, desk=desk, meeting_type=meeting_type,
|
|
1153 |
start_datetime=make_aware(datetime.datetime(2017, 5, 22, 8, 30)))
|
|
1154 |
Booking.objects.create(event=event)
|
|
1155 |
event = Event.objects.create(agenda=agenda, places=1, desk=desk, meeting_type=meeting_type,
|
|
1156 |
start_datetime=make_aware(datetime.datetime(2017, 5, 23, 8, 30)))
|
|
1157 |
Booking.objects.create(event=event)
|
|
1158 |
login(app)
|
|
1159 |
timeperiod_edit_link = "/manage/timeperiods/%d/edit" % timeperiod.pk
|
|
1160 |
# change time period weekday
|
|
1161 |
resp = app.get('/manage/agendas/%d/' % agenda.pk)
|
|
1162 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1163 |
resp.form['weekday'] = '2'
|
|
1164 |
resp = resp.form.submit()
|
|
1165 |
error_message = resp.html.find('ul', {'class': 'errorlist'}).text.strip()
|
|
1166 |
assert error_message == 'One or several bookings exist within this time period.'
|
|
1167 |
# extend time period start
|
|
1168 |
resp = app.get('/manage/agendas/%d/' % agenda.pk)
|
|
1169 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1170 |
resp.form['start_time'] = '7:30'
|
|
1171 |
resp = resp.form.submit().follow()
|
|
1172 |
assert resp.html.find('a', {'href': timeperiod_edit_link}).text.strip() == u'Tuesday / 7:30 a.m. \u2192 11 a.m.'
|
|
1173 |
# shorten time period start at booking's bound
|
|
1174 |
resp = app.get('/manage/agendas/%d/' % agenda.pk)
|
|
1175 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1176 |
resp.form['start_time'] = '8:30'
|
|
1177 |
resp = resp.form.submit().follow()
|
|
1178 |
assert resp.html.find('a', {'href': timeperiod_edit_link}).text.strip() == u'Tuesday / 8:30 a.m. \u2192 11 a.m.'
|
|
1179 |
# shorten time period start
|
|
1180 |
resp = app.get('/manage/agendas/%d/' % agenda.pk)
|
|
1181 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1182 |
resp.form['start_time'] = '9:30'
|
|
1183 |
resp = resp.form.submit()
|
|
1184 |
error_message = resp.html.find('ul', {'class': 'errorlist'}).text.strip()
|
|
1185 |
assert error_message == 'One or several bookings exist within this time period.'
|
|
1186 |
# extend time period end
|
|
1187 |
resp = app.get('/manage/agendas/%d/' % agenda.pk)
|
|
1188 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1189 |
resp.form['end_time'] = '12:30'
|
|
1190 |
resp = resp.form.submit().follow()
|
|
1191 |
assert resp.html.find('a', {'href': timeperiod_edit_link}).text.strip() == u'Tuesday / 8:30 a.m. \u2192 12:30 p.m.'
|
|
1192 |
event = Event.objects.create(agenda=agenda, places=1, desk=desk, meeting_type=meeting_type,
|
|
1193 |
start_datetime=make_aware(datetime.datetime(2017, 5, 23, 11, 30)))
|
|
1194 |
Booking.objects.create(event=event)
|
|
1195 |
# shorten time period end at booking's bound
|
|
1196 |
resp = app.get('/manage/agendas/%d/' % agenda.pk)
|
|
1197 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1198 |
resp.form['end_time'] = '12:00'
|
|
1199 |
resp = resp.form.submit().follow()
|
|
1200 |
assert resp.html.find('a', {'href': timeperiod_edit_link}).text.strip() == u'Tuesday / 8:30 a.m. \u2192 noon'
|
|
1201 |
# shorten time period end
|
|
1202 |
resp = app.get('/manage/agendas/%d/' % agenda.pk)
|
|
1203 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1204 |
resp.form['end_time'] = '11:00'
|
|
1205 |
resp = resp.form.submit()
|
|
1206 |
error_message = resp.html.find('ul', {'class': 'errorlist'}).text.strip()
|
|
1207 |
assert error_message == 'One or several bookings exist within this time period.'
|
|
1208 |
# extend both time period start and end
|
|
1209 |
resp = app.get('/manage/agendas/%d/' % agenda.pk)
|
|
1210 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1211 |
resp.form['start_time'] = '7:00'
|
|
1212 |
resp.form['end_time'] = '12:30'
|
|
1213 |
resp = resp.form.submit().follow()
|
|
1214 |
assert resp.html.find('a', {'href': timeperiod_edit_link}).text.strip() == u'Tuesday / 7 a.m. \u2192 12:30 p.m.'
|
|
1215 |
# shorten both time period start and end
|
|
1216 |
Booking.objects.create(event=event)
|
|
1217 |
resp = app.get('/manage/agendas/%d/' % agenda.pk)
|
|
1218 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1219 |
resp.form['start_time'] = '8:00'
|
|
1220 |
resp.form['end_time'] = '11:00'
|
|
1221 |
resp = resp.form.submit()
|
|
1222 |
error_message = resp.html.find('ul', {'class': 'errorlist'}).text.strip()
|
|
1223 |
assert error_message == 'One or several bookings exist within this time period.'
|
1142 |
|
-
|