api: add in_waiting_list filter in user bookings list (#60020)

This commit is contained in:
Valentin Deniaud 2022-01-04 14:20:39 +01:00
parent 4c52f29cfd
commit 5c25f7811d
2 changed files with 25 additions and 0 deletions

View File

@ -1891,6 +1891,7 @@ class BookingFilter(filters.FilterSet):
'date_end',
'user_was_present',
'user_absence_reason',
'in_waiting_list',
]

View File

@ -324,6 +324,30 @@ def test_bookings_api_filter_user_absence_reason(app, user):
assert [b['id'] for b in resp.json['data']] == [booking2.pk]
def test_bookings_api_filter_in_waiting_list(app, user):
agenda = Agenda.objects.create()
event = Event.objects.create(
agenda=agenda, start_datetime=make_aware(datetime.datetime(2017, 5, 22, 0, 0)), places=10
)
booking_main_list = Booking.objects.create(event=event, user_external_id='42')
booking_waiting_list = Booking.objects.create(event=event, user_external_id='42', in_waiting_list=True)
app.authorization = ('Basic', ('john.doe', 'password'))
resp = app.get('/api/bookings/', params={'user_external_id': '42'})
assert resp.json['err'] == 0
assert len(resp.json['data']) == 2
resp = app.get('/api/bookings/', params={'user_external_id': '42', 'in_waiting_list': False})
assert resp.json['err'] == 0
assert len(resp.json['data']) == 1
assert resp.json['data'][0]['id'] == booking_main_list.id
resp = app.get('/api/bookings/', params={'user_external_id': '42', 'in_waiting_list': True})
assert resp.json['err'] == 0
assert len(resp.json['data']) == 1
assert resp.json['data'][0]['id'] == booking_waiting_list.id
@pytest.mark.parametrize('flag', [True, False, None])
def test_booking_api_present(app, user, flag):
agenda = Agenda.objects.create(kind='events')