From 4e4ab09bf8238fcdae3cc6d8a1dc5980c2235054 Mon Sep 17 00:00:00 2001 From: Richard Schreiber Date: Tue, 28 Apr 2026 14:58:15 +0200 Subject: [PATCH] Add test for checkinrpc for ops out of timerang or canceled --- src/tests/api/test_checkinrpc.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/tests/api/test_checkinrpc.py b/src/tests/api/test_checkinrpc.py index ff09d36e16..2c6edc222f 100644 --- a/src/tests/api/test_checkinrpc.py +++ b/src/tests/api/test_checkinrpc.py @@ -309,7 +309,8 @@ def test_by_medium_multiple_orderpositions(token_client, organizer, clist, event identifier="abcdef", organizer=organizer, ) - rm.linked_orderpositions.add(order.positions.first()) + op_item_first = order.positions.first() + rm.linked_orderpositions.add(op_item_first) op_item_other = order.positions.all()[1] rm.linked_orderpositions.add(op_item_other) @@ -342,6 +343,28 @@ def test_by_medium_multiple_orderpositions(token_client, organizer, clist, event assert resp.data['status'] == 'error' assert resp.data['reason'] == 'already_redeemed' + with scopes_disabled(): + op_item_first.valid_from = datetime.datetime(2020, 1, 1, 10, 0, 0, tzinfo=event.timezone) + op_item_first.valid_until = datetime.datetime(2020, 1, 1, 12, 0, 0, tzinfo=event.timezone) + op_item_first.save() + + with freeze_time("2020-01-01 15:45:00"): + resp = _redeem(token_client, organizer, clist, "abcdef", {"source_type": "barcode"}) + assert resp.status_code == 400 + assert resp.data['status'] == 'error' + assert resp.data['reason'] == 'invalid_time' + + with scopes_disabled(): + op_item_first.canceled = True + op_item_first.save() + op_item_other.canceled = True + op_item_other.save() + + resp = _redeem(token_client, organizer, clist, "abcdef", {"source_type": "barcode"}) + assert resp.status_code == 400 + assert resp.data['status'] == 'error' + assert resp.data['reason'] == 'canceled' + @pytest.mark.django_db def test_by_medium_not_connected(token_client, organizer, clist, event, order):