forked from CGM_Public/pretix_original
Allow to enter gift cards into the voucher input (Z#23171961) (#4670)
This commit is contained in:
@@ -2306,6 +2306,25 @@ class CartTest(CartTestMixin, TestCase):
|
||||
assert cp1.voucher is None
|
||||
assert cp2.voucher is None
|
||||
|
||||
def test_voucher_apply_is_a_giftcard(self):
|
||||
with scopes_disabled():
|
||||
CartPosition.objects.create(
|
||||
event=self.event, cart_id=self.session_key, item=self.ticket,
|
||||
price=23, listed_price=23, price_after_voucher=23, expires=now() + timedelta(minutes=10)
|
||||
)
|
||||
CartPosition.objects.create(
|
||||
event=self.event, cart_id=self.session_key, item=self.shirt, variation=self.shirt_blue,
|
||||
price=8, expires=now() + timedelta(minutes=10),
|
||||
)
|
||||
gc = self.orga.issued_gift_cards.create(secret="GIFTCARD", currency=self.event.currency)
|
||||
gc.transactions.create(value=Decimal("12.24"), acceptor=self.orga)
|
||||
|
||||
html = self.client.post('/%s/%s/cart/voucher' % (self.orga.slug, self.event.slug), {
|
||||
'voucher': 'GIFTCARD',
|
||||
}, follow=True)
|
||||
assert "alert-success" in html.rendered_content
|
||||
assert "€12.24" in html.rendered_content
|
||||
|
||||
def test_discount(self):
|
||||
with scopes_disabled():
|
||||
Discount.objects.create(event=self.event, condition_min_count=2, benefit_discount_matching_percent=20,
|
||||
|
||||
@@ -55,6 +55,7 @@ from pretix.base.models import (
|
||||
)
|
||||
from pretix.base.models.items import SubEventItem, SubEventItemVariation
|
||||
from pretix.base.reldate import RelativeDate, RelativeDateWrapper
|
||||
from pretix.testutils.sessions import get_cart_session_key
|
||||
|
||||
|
||||
class EventTestMixin:
|
||||
@@ -1003,6 +1004,25 @@ class VoucherRedeemItemDisplayTest(EventTestMixin, SoupTest):
|
||||
assert 'name="variation_%d_%d' % (self.item.pk, var1.pk) not in html.rendered_content
|
||||
assert 'name="variation_%d_%d' % (self.item.pk, var2.pk) not in html.rendered_content
|
||||
|
||||
def test_voucher_is_a_gift_card(self):
|
||||
gc = self.orga.issued_gift_cards.create(secret="GIFTCARD", currency=self.event.currency)
|
||||
gc.transactions.create(value=Decimal("12.00"), acceptor=self.orga)
|
||||
|
||||
html = self.client.get('/%s/%s/redeem?voucher=%s' % (self.orga.slug, self.event.slug, 'GIFTCARD'), follow=True)
|
||||
assert "alert-success" in html.rendered_content
|
||||
assert "€12.00" in html.rendered_content
|
||||
|
||||
payments = self.client.session['carts'][get_cart_session_key(self.client, self.event)]["payments"]
|
||||
assert payments[0]["info_data"]["gift_card_secret"] == "GIFTCARD"
|
||||
|
||||
def test_voucher_is_a_gift_card_but_invalid(self):
|
||||
gc = self.orga.issued_gift_cards.create(secret="GIFTCARD", currency=self.event.currency, expires=now() - datetime.timedelta(days=1))
|
||||
gc.transactions.create(value=Decimal("12.00"), acceptor=self.orga)
|
||||
|
||||
html = self.client.get('/%s/%s/redeem?voucher=%s' % (self.orga.slug, self.event.slug, 'GIFTCARD'), follow=True)
|
||||
assert "alert-danger" in html.rendered_content
|
||||
assert "This gift card is no longer valid" in html.rendered_content
|
||||
|
||||
|
||||
class WaitingListTest(EventTestMixin, SoupTest):
|
||||
@scopes_disabled()
|
||||
|
||||
Reference in New Issue
Block a user