mirror of
https://github.com/pretix/pretix.git
synced 2026-05-12 16:24:00 +00:00
Ignore expiry date for payments created via api (Z#23232671)
This commit is contained in:
@@ -1658,6 +1658,7 @@ class PaymentViewSet(CreateModelMixin, viewsets.ReadOnlyModelViewSet):
|
|||||||
count_waitinglist=False,
|
count_waitinglist=False,
|
||||||
force=request.data.get('force', False),
|
force=request.data.get('force', False),
|
||||||
send_mail=send_mail,
|
send_mail=send_mail,
|
||||||
|
ignore_date=True,
|
||||||
)
|
)
|
||||||
except Quota.QuotaExceededException:
|
except Quota.QuotaExceededException:
|
||||||
pass
|
pass
|
||||||
@@ -1693,7 +1694,8 @@ class PaymentViewSet(CreateModelMixin, viewsets.ReadOnlyModelViewSet):
|
|||||||
auth=self.request.auth,
|
auth=self.request.auth,
|
||||||
count_waitinglist=False,
|
count_waitinglist=False,
|
||||||
send_mail=send_mail,
|
send_mail=send_mail,
|
||||||
force=force)
|
force=force,
|
||||||
|
ignore_date=True)
|
||||||
except Quota.QuotaExceededException as e:
|
except Quota.QuotaExceededException as e:
|
||||||
return Response({'detail': str(e)}, status=status.HTTP_400_BAD_REQUEST)
|
return Response({'detail': str(e)}, status=status.HTTP_400_BAD_REQUEST)
|
||||||
except PaymentException as e:
|
except PaymentException as e:
|
||||||
|
|||||||
@@ -730,6 +730,34 @@ def test_payment_create_confirmed(token_client, organizer, event, order):
|
|||||||
assert len(djmail.outbox) == 0
|
assert len(djmail.outbox) == 0
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_payment_create_confirmed_after_expiry(token_client, organizer, event, order):
|
||||||
|
djmail.outbox = []
|
||||||
|
order.expires = now() - datetime.timedelta(days=2)
|
||||||
|
order.save()
|
||||||
|
event.settings.payment_term_last = (now() - datetime.timedelta(days=2)).strftime('%Y-%m-%d')
|
||||||
|
|
||||||
|
resp = token_client.post('/api/v1/organizers/{}/events/{}/orders/{}/payments/'.format(
|
||||||
|
organizer.slug, event.slug, order.code
|
||||||
|
), format='json', data={
|
||||||
|
'provider': 'banktransfer',
|
||||||
|
'state': 'confirmed',
|
||||||
|
'amount': order.total,
|
||||||
|
'send_email': False,
|
||||||
|
'info': {
|
||||||
|
'foo': 'bar'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
with scopes_disabled():
|
||||||
|
p = order.payments.last()
|
||||||
|
assert resp.status_code == 201
|
||||||
|
assert p.state == OrderPayment.PAYMENT_STATE_CONFIRMED
|
||||||
|
assert p.info_data == {'foo': 'bar'}
|
||||||
|
order.refresh_from_db()
|
||||||
|
assert order.status == Order.STATUS_PAID
|
||||||
|
assert len(djmail.outbox) == 0
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_payment_create_pending(token_client, organizer, event, order):
|
def test_payment_create_pending(token_client, organizer, event, order):
|
||||||
resp = token_client.post('/api/v1/organizers/{}/events/{}/orders/{}/payments/'.format(
|
resp = token_client.post('/api/v1/organizers/{}/events/{}/orders/{}/payments/'.format(
|
||||||
|
|||||||
Reference in New Issue
Block a user