forked from CGM_Public/pretix_original
add failing tests
This commit is contained in:
@@ -170,6 +170,34 @@ def test_giftcard_detail_expand(token_client, organizer, event, giftcard):
|
|||||||
"blocked": None
|
"blocked": None
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_giftcard_detail_expand_without_permissions(team, token_client, organizer, event, giftcard):
|
||||||
|
with scopes_disabled():
|
||||||
|
o = Order.objects.create(
|
||||||
|
code='FOO', event=event, email='dummy@dummy.test',
|
||||||
|
status=Order.STATUS_PENDING, datetime=now(), expires=now() + timedelta(days=10),
|
||||||
|
sales_channel=event.organizer.sales_channels.get(identifier="web"),
|
||||||
|
total=14, locale='en'
|
||||||
|
)
|
||||||
|
ticket = event.items.create(name='Early-bird ticket', category=None, default_price=23, admission=True,
|
||||||
|
personalized=True)
|
||||||
|
op = o.positions.create(item=ticket, price=Decimal("14"))
|
||||||
|
giftcard.owner_ticket = op
|
||||||
|
giftcard.save()
|
||||||
|
|
||||||
|
team.all_event_permissions = False
|
||||||
|
team.save()
|
||||||
|
|
||||||
|
res = dict(TEST_GC_RES)
|
||||||
|
res["id"] = giftcard.pk
|
||||||
|
res["issuance"] = giftcard.issuance.isoformat().replace('+00:00', 'Z')
|
||||||
|
resp = token_client.get('/api/v1/organizers/{}/giftcards/{}/?expand=owner_ticket'.format(organizer.slug, giftcard.pk))
|
||||||
|
assert resp.status_code == 200
|
||||||
|
|
||||||
|
assert resp.data["owner_ticket"] == {
|
||||||
|
"id": op.pk,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
TEST_GIFTCARD_CREATE_PAYLOAD = {
|
TEST_GIFTCARD_CREATE_PAYLOAD = {
|
||||||
"secret": "DEFABC",
|
"secret": "DEFABC",
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ from datetime import datetime, timedelta, timezone
|
|||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
from django.contrib.messages.storage.fallback import FallbackStorage
|
||||||
from django.utils.timezone import now
|
from django.utils.timezone import now
|
||||||
from django_scopes import scopes_disabled
|
from django_scopes import scopes_disabled
|
||||||
|
|
||||||
@@ -251,6 +252,78 @@ def test_medium_detail(token_client, organizer, event, medium, giftcard, custome
|
|||||||
"issuer": "dummy",
|
"issuer": "dummy",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_medium_detail_event_permission_missing(token_client, organizer, event, medium, giftcard, customer, team):
|
||||||
|
team.all_organizer_permissions = False
|
||||||
|
team.limit_organizer_permissions = {
|
||||||
|
"organizer.reusablemedia:read": True,
|
||||||
|
"organizer.customers:read": True,
|
||||||
|
"organizer.giftcards:read": True,
|
||||||
|
}
|
||||||
|
team.all_event_permissions = False
|
||||||
|
team.save()
|
||||||
|
|
||||||
|
with scopes_disabled():
|
||||||
|
o = Order.objects.create(
|
||||||
|
code='FOO', event=event, email='dummy@dummy.test',
|
||||||
|
status=Order.STATUS_PENDING, datetime=now(), expires=now() + timedelta(days=10),
|
||||||
|
sales_channel=event.organizer.sales_channels.get(identifier="web"),
|
||||||
|
total=14, locale='en'
|
||||||
|
)
|
||||||
|
ticket = event.items.create(name='Early-bird ticket', category=None, default_price=23, admission=True,
|
||||||
|
personalized=True)
|
||||||
|
op = o.positions.create(item=ticket, price=Decimal("14"))
|
||||||
|
medium.linked_orderposition = op
|
||||||
|
medium.linked_giftcard = giftcard
|
||||||
|
medium.customer = customer
|
||||||
|
medium.save()
|
||||||
|
giftcard.owner_ticket = op
|
||||||
|
giftcard.save()
|
||||||
|
|
||||||
|
resp = token_client.get(
|
||||||
|
'/api/v1/organizers/{}/reusablemedia/{}/?expand=linked_giftcard&expand='
|
||||||
|
'linked_giftcard.owner_ticket&expand=linked_orderposition&expand=customer'.format(
|
||||||
|
organizer.slug, medium.pk
|
||||||
|
)
|
||||||
|
)
|
||||||
|
assert resp.status_code == 200
|
||||||
|
|
||||||
|
assert resp.data["linked_orderposition"] == {
|
||||||
|
"id": op.pk,
|
||||||
|
}
|
||||||
|
|
||||||
|
assert resp.data["linked_giftcard"] == {
|
||||||
|
"id": giftcard.pk,
|
||||||
|
"secret": "ABCDEF",
|
||||||
|
"issuance": giftcard.issuance.isoformat().replace("+00:00", "Z"),
|
||||||
|
"value": "23.00",
|
||||||
|
"currency": "EUR",
|
||||||
|
"testmode": False,
|
||||||
|
"expires": None,
|
||||||
|
"conditions": None,
|
||||||
|
"owner_ticket": {"id": op.pk },
|
||||||
|
"issuer": "dummy",
|
||||||
|
}
|
||||||
|
|
||||||
|
assert resp.data["customer"] == {
|
||||||
|
"identifier": customer.identifier,
|
||||||
|
"external_identifier": None,
|
||||||
|
"email": "foo@example.org",
|
||||||
|
"phone": None,
|
||||||
|
"name": "Foo",
|
||||||
|
"name_parts": {"_legacy": "Foo"},
|
||||||
|
"is_active": True,
|
||||||
|
"is_verified": False,
|
||||||
|
"last_login": None,
|
||||||
|
"date_joined": customer.date_joined.isoformat().replace("+00:00", "Z"),
|
||||||
|
"locale": "en",
|
||||||
|
"last_modified": customer.last_modified.isoformat().replace("+00:00", "Z"),
|
||||||
|
"notes": None
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TEST_MEDIUM_CREATE_PAYLOAD = {
|
TEST_MEDIUM_CREATE_PAYLOAD = {
|
||||||
"type": "barcode",
|
"type": "barcode",
|
||||||
|
|||||||
Reference in New Issue
Block a user