From 8c54a8417daa8fcdff04fd155bd09d7898840878 Mon Sep 17 00:00:00 2001 From: Richard Schreiber Date: Tue, 16 Dec 2025 15:02:40 +0100 Subject: [PATCH] add test --- src/tests/api/test_checkinrpc.py | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/tests/api/test_checkinrpc.py b/src/tests/api/test_checkinrpc.py index dad4ed561f..ed3169d027 100644 --- a/src/tests/api/test_checkinrpc.py +++ b/src/tests/api/test_checkinrpc.py @@ -301,6 +301,41 @@ def test_by_medium(token_client, organizer, clist, event, order): assert ci.raw_source_type == "barcode" +@pytest.mark.django_db +def test_by_medium_multiple_orderpositions(token_client, organizer, clist, event, order): + with scopes_disabled(): + rm = ReusableMedium.objects.create( + type="barcode", + identifier="abcdef", + organizer=organizer, + ) + rm.linked_orderpositions.add(order.positions.first()) + rm.linked_orderpositions.add(order.positions.all()[1]) + resp = _redeem(token_client, organizer, clist, "abcdef", {"source_type": "barcode"}) + # TODO: AMBIGIOUS + assert resp.status_code == 201 + + with scopes_disabled(): + op = order.positions.first() + op.valid_from = datetime.datetime(2020, 1, 1, 12, 0, 0, tzinfo=event.timezone) + op.save() + + with freeze_time("2020-01-01 13:45:00"): + resp = _redeem(token_client, organizer, clist, "abcdef", {"source_type": "barcode"}) + # TODO: AMBIGIOUS + assert resp.status_code == 201 + + with freeze_time("2020-01-01 10:45:00"): + resp = _redeem(token_client, organizer, clist, "abcdef", {"source_type": "barcode"}) + assert resp.status_code == 201 + assert resp.data['status'] == 'ok' + + with scopes_disabled(): + ci = clist.checkins.get(position=order.positions.first()) + assert ci.raw_barcode == "abcdef" + assert ci.raw_source_type == "barcode" + + @pytest.mark.django_db def test_by_medium_not_connected(token_client, organizer, clist, event, order): with scopes_disabled():