1090 |
1090 |
assert 'Exception 2' in resp.text
|
1091 |
1091 |
|
1092 |
1092 |
|
1093 |
|
def test_meetings_agenda_add_time_period_exception_when_booking_exists(app, admin_user):
|
1094 |
|
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
1095 |
|
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
1096 |
|
MeetingType(agenda=agenda, label='Blah').save()
|
1097 |
|
TimePeriod.objects.create(
|
1098 |
|
weekday=1, desk=desk, start_time=datetime.time(10, 0), end_time=datetime.time(12, 0)
|
1099 |
|
)
|
1100 |
|
event = Event.objects.create(
|
1101 |
|
agenda=agenda, places=1, desk=desk, start_datetime=make_aware(datetime.datetime(2017, 5, 22, 10, 30))
|
1102 |
|
)
|
1103 |
|
Booking.objects.create(event=event)
|
1104 |
|
login(app)
|
1105 |
|
resp = app.get('/manage/agendas/%d/' % agenda.pk).follow()
|
1106 |
|
resp = resp.click('Settings')
|
1107 |
|
resp = resp.click('Add a time period exception')
|
1108 |
|
resp = resp.form.submit() # submit empty form
|
1109 |
|
# fields should be marked with errors
|
1110 |
|
assert resp.text.count('This field is required.') == 2
|
1111 |
|
# try again with data in fields
|
1112 |
|
resp.form['start_datetime$date'] = '2017-05-22'
|
1113 |
|
resp.form['start_datetime$time'] = '08:00'
|
1114 |
|
resp.form['end_datetime$date'] = '2017-05-26'
|
1115 |
|
resp.form['end_datetime$time'] = '17:30'
|
1116 |
|
resp = resp.form.submit()
|
1117 |
|
assert 'One or several bookings exists within this time slot.' in resp.text
|
1118 |
|
assert TimePeriodException.objects.count() == 0
|
1119 |
|
|
1120 |
|
# check it's possible to add an exception on another desk
|
1121 |
|
desk = Desk.objects.create(agenda=agenda, label='Desk B')
|
1122 |
|
TimePeriod.objects.create(
|
1123 |
|
weekday=1, desk=desk, start_time=datetime.time(10, 0), end_time=datetime.time(12, 0)
|
1124 |
|
)
|
1125 |
|
resp = app.get('/manage/agendas/%d/' % agenda.pk).follow()
|
1126 |
|
resp = resp.click('Settings')
|
1127 |
|
resp = resp.click('Add a time period exception', href='desk/%s/' % desk.id)
|
1128 |
|
resp.form['start_datetime$date'] = '2017-05-22'
|
1129 |
|
resp.form['start_datetime$time'] = '08:00'
|
1130 |
|
resp.form['end_datetime$date'] = '2017-05-26'
|
1131 |
|
resp.form['end_datetime$time'] = '17:30'
|
1132 |
|
resp = resp.form.submit()
|
1133 |
|
assert TimePeriodException.objects.count() == 1
|
1134 |
|
|
1135 |
|
|
1136 |
|
def test_meetings_agenda_add_time_period_exception_when_cancelled_booking_exists(app, admin_user):
|
1137 |
|
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
1138 |
|
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
1139 |
|
MeetingType(agenda=agenda, label='Blah').save()
|
1140 |
|
TimePeriod.objects.create(
|
1141 |
|
weekday=1, desk=desk, start_time=datetime.time(10, 0), end_time=datetime.time(12, 0)
|
1142 |
|
)
|
1143 |
|
event = Event.objects.create(
|
1144 |
|
agenda=agenda, places=1, start_datetime=make_aware(datetime.datetime(2017, 5, 22, 10, 30))
|
1145 |
|
)
|
1146 |
|
Booking.objects.create(
|
1147 |
|
event=event, cancellation_datetime=make_aware(datetime.datetime(2017, 5, 20, 10, 30))
|
1148 |
|
)
|
1149 |
|
login(app)
|
1150 |
|
resp = app.get('/manage/agendas/%d/' % agenda.pk).follow()
|
1151 |
|
resp = resp.click('Settings')
|
1152 |
|
resp = resp.click('Add a time period exception')
|
1153 |
|
resp.form['start_datetime$date'] = '2017-05-22'
|
1154 |
|
resp.form['start_datetime$time'] = '08:00'
|
1155 |
|
resp.form['end_datetime$date'] = '2017-05-26'
|
1156 |
|
resp.form['end_datetime$time'] = '17:30'
|
1157 |
|
resp = resp.form.submit()
|
1158 |
|
assert 'One or several bookings exists within this time slot.' not in resp.text
|
1159 |
|
assert TimePeriodException.objects.count() == 1
|
1160 |
|
|
1161 |
|
|
1162 |
1093 |
def test_meetings_agenda_add_invalid_time_period_exception():
|
1163 |
1094 |
form = TimePeriodExceptionForm(
|
1164 |
1095 |
data={
|
1165 |
|
-
|