68 |
68 |
@pytest.fixture
|
69 |
69 |
def some_data(time_zone, mock_now):
|
70 |
70 |
agenda = Agenda(label=u'Foo bar')
|
71 |
71 |
agenda.save()
|
72 |
72 |
first_date = localtime(now()).replace(hour=17, minute=0, second=0, microsecond=0)
|
73 |
73 |
first_date += datetime.timedelta(days=1)
|
74 |
74 |
for i in range(3):
|
75 |
75 |
event = Event(start_datetime=first_date + datetime.timedelta(days=i), places=20, agenda=agenda)
|
|
76 |
if i == 0:
|
|
77 |
event.stop_datetime = event.start_datetime + datetime.timedelta(hours=2)
|
76 |
78 |
event.save()
|
77 |
79 |
|
78 |
80 |
agenda2 = Agenda(label=u'Foo bar 2')
|
79 |
81 |
agenda2.save()
|
80 |
82 |
first_date = localtime(now()).replace(hour=20, minute=0, second=0, microsecond=0)
|
81 |
83 |
first_date += datetime.timedelta(days=1)
|
82 |
84 |
for i in range(2):
|
83 |
85 |
event = Event(start_datetime=first_date + datetime.timedelta(days=i), places=20, agenda=agenda2)
|
... | ... | |
444 |
446 |
agenda.slug,
|
445 |
447 |
event.slug or event.id,
|
446 |
448 |
)
|
447 |
449 |
|
448 |
450 |
app.authorization = ('Basic', ('john.doe', 'password'))
|
449 |
451 |
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event.id))
|
450 |
452 |
Booking.objects.get(id=resp.json['booking_id'])
|
451 |
453 |
assert resp.json['datetime'] == localtime(event.start_datetime).strftime('%Y-%m-%d %H:%M:%S')
|
|
454 |
assert resp.json['end_datetime'] == localtime(event.stop_datetime).strftime('%Y-%m-%d %H:%M:%S')
|
452 |
455 |
assert 'accept_url' not in resp.json['api']
|
453 |
456 |
assert 'suspend_url' in resp.json['api']
|
454 |
457 |
assert 'cancel_url' in resp.json['api']
|
455 |
458 |
assert 'ics_url' in resp.json['api']
|
456 |
459 |
assert urlparse.urlparse(resp.json['api']['suspend_url']).netloc
|
457 |
460 |
assert urlparse.urlparse(resp.json['api']['cancel_url']).netloc
|
458 |
461 |
assert urlparse.urlparse(resp.json['api']['ics_url']).netloc
|
459 |
462 |
assert Booking.objects.count() == 1
|
... | ... | |
758 |
761 |
assert resp.json['err_class'] == 'invalid payload'
|
759 |
762 |
assert resp.json['err_desc'] == 'invalid payload'
|
760 |
763 |
|
761 |
764 |
slots_string_param = ','.join([str(e) for e in events_ids])
|
762 |
765 |
resp = app.post_json('/api/agenda/%s/fillslots/' % agenda.slug, params={'slots': slots_string_param})
|
763 |
766 |
primary_booking_id = resp.json['booking_id']
|
764 |
767 |
Booking.objects.get(id=primary_booking_id)
|
765 |
768 |
assert Booking.objects.count() == 3
|
|
769 |
assert resp.json['events'][0]['end_datetime']
|
|
770 |
assert not resp.json['events'][1].get('end_datetime')
|
766 |
771 |
|
767 |
772 |
|
768 |
773 |
def test_booking_api_meeting(app, meetings_agenda, user):
|
769 |
774 |
agenda_id = meetings_agenda.slug
|
770 |
775 |
meeting_type = MeetingType.objects.get(agenda=meetings_agenda)
|
771 |
776 |
resp = app.get('/api/agenda/meetings/%s/datetimes/' % meeting_type.id)
|
772 |
777 |
event_id = resp.json['data'][2]['id']
|
773 |
778 |
assert urlparse.urlparse(
|
774 |
|
-
|