forked from CGM_Public/pretix_original
API: Expose history of check-ins (Z#23206049)
This commit is contained in:
committed by
Raphael Michel
parent
7d5df2b69e
commit
9a69b76880
@@ -236,6 +236,21 @@ TEST_LIST_RES = {
|
||||
"rules": {}
|
||||
}
|
||||
|
||||
TEST_HISTORY_RES = {
|
||||
"successful": True,
|
||||
"error_reason": None,
|
||||
"error_explanation": None,
|
||||
"position": 1234,
|
||||
"datetime": "2017-12-25T12:45:23Z",
|
||||
"created": "2017-12-25T12:45:23Z",
|
||||
"list": 2,
|
||||
"auto_checked_in": False,
|
||||
"gate": None,
|
||||
"device": None,
|
||||
"device_id": None,
|
||||
"type": "entry",
|
||||
}
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def clist(event, item):
|
||||
@@ -1366,3 +1381,57 @@ def test_expand(token_client, organizer, event, clist, clist_all, item, other_it
|
||||
))
|
||||
assert resp.status_code == 200
|
||||
assert 'value' in resp.data['results'][0]['variation']
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_history(token_client, organizer, event, clist, order):
|
||||
with scopes_disabled():
|
||||
ci = order.positions.first().checkins.create(list=clist, type=Checkin.TYPE_ENTRY, datetime=now())
|
||||
res = dict(TEST_HISTORY_RES)
|
||||
res["id"] = ci.pk
|
||||
res["datetime"] = ci.datetime.isoformat().replace('+00:00', 'Z')
|
||||
res["created"] = ci.created.isoformat().replace('+00:00', 'Z')
|
||||
res["list"] = clist.pk
|
||||
res["position"] = ci.position_id
|
||||
|
||||
resp = token_client.get('/api/v1/organizers/{}/events/{}/checkins/'.format(
|
||||
organizer.slug, event.slug,
|
||||
))
|
||||
assert resp.status_code == 200
|
||||
assert res == resp.data['results'][0]
|
||||
|
||||
resp = token_client.get('/api/v1/organizers/{}/events/{}/checkins/?auto_checked_in=false'.format(
|
||||
organizer.slug, event.slug,
|
||||
))
|
||||
assert len(resp.data['results']) == 1
|
||||
resp = token_client.get('/api/v1/organizers/{}/events/{}/checkins/?auto_checked_in=true'.format(
|
||||
organizer.slug, event.slug,
|
||||
))
|
||||
assert len(resp.data['results']) == 0
|
||||
|
||||
resp = token_client.get('/api/v1/organizers/{}/events/{}/checkins/?successful=true'.format(
|
||||
organizer.slug, event.slug,
|
||||
))
|
||||
assert len(resp.data['results']) == 1
|
||||
resp = token_client.get('/api/v1/organizers/{}/events/{}/checkins/?successful=false'.format(
|
||||
organizer.slug, event.slug,
|
||||
))
|
||||
assert len(resp.data['results']) == 0
|
||||
|
||||
resp = token_client.get('/api/v1/organizers/{}/events/{}/checkins/?type=entry'.format(
|
||||
organizer.slug, event.slug,
|
||||
))
|
||||
assert len(resp.data['results']) == 1
|
||||
resp = token_client.get('/api/v1/organizers/{}/events/{}/checkins/?type=exit'.format(
|
||||
organizer.slug, event.slug,
|
||||
))
|
||||
assert len(resp.data['results']) == 0
|
||||
|
||||
resp = token_client.get('/api/v1/organizers/{}/events/{}/checkins/?created_before=2099-01-01T00:00:00Z'.format(
|
||||
organizer.slug, event.slug,
|
||||
))
|
||||
assert len(resp.data['results']) == 1
|
||||
resp = token_client.get('/api/v1/organizers/{}/events/{}/checkins/?created_before=2017-01-01T00:00:00Z'.format(
|
||||
organizer.slug, event.slug,
|
||||
))
|
||||
assert len(resp.data['results']) == 0
|
||||
|
||||
@@ -54,6 +54,7 @@ event_urls = [
|
||||
(None, 'taxrules/'),
|
||||
('can_view_orders', 'waitinglistentries/'),
|
||||
('can_view_orders', 'checkinlists/'),
|
||||
('can_view_orders', 'checkins/'),
|
||||
(None, 'seats/'),
|
||||
]
|
||||
|
||||
@@ -176,6 +177,8 @@ event_permission_sub_urls = [
|
||||
('post', 'can_change_orders', 'orders/ABC12/refunds/1/done/', 404),
|
||||
('get', 'can_view_orders', 'checkinlists/', 200),
|
||||
('post', 'can_change_orders', 'checkinlists/1/failed_checkins/', 400),
|
||||
('get', 'can_view_orders', 'checkins/', 200),
|
||||
('get', 'can_view_orders', 'checkins/1/', 404),
|
||||
('post', 'can_change_event_settings', 'checkinlists/', 400),
|
||||
('put', 'can_change_event_settings', 'checkinlists/1/', 404),
|
||||
('patch', 'can_change_event_settings', 'checkinlists/1/', 404),
|
||||
|
||||
Reference in New Issue
Block a user