forked from CGM_Public/pretix_original
Fix #2090 -- Test mode for memberships
This commit is contained in:
@@ -68,6 +68,7 @@ TEST_MEMBERSHIP_RES = {
|
||||
"customer": "8WSAJCJ",
|
||||
"date_start": "2021-04-01T00:00:00Z",
|
||||
"date_end": "2021-04-08T23:59:59.999999Z",
|
||||
"testmode": False,
|
||||
"attendee_name_parts": {
|
||||
"_scheme": "given_family",
|
||||
'given_name': 'John',
|
||||
@@ -136,11 +137,13 @@ def test_membership_patch(token_client, organizer, customer, membership):
|
||||
format='json',
|
||||
data={
|
||||
"customer": other_customer.identifier,
|
||||
"testmode": True,
|
||||
}
|
||||
)
|
||||
assert resp.status_code == 200
|
||||
membership.refresh_from_db()
|
||||
assert membership.customer == customer # change is ignored
|
||||
assert not membership.testmode # change is ignored
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
|
||||
@@ -227,6 +227,44 @@ def test_validate_membership_ensure_locking(event, customer, membership, requiri
|
||||
assert any('FOR UPDATE' in s['sql'] for s in captured)
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_validate_membership_test_mode(event, customer, membership, requiring_ticket, membership_type):
|
||||
with pytest.raises(ValidationError) as excinfo:
|
||||
membership.testmode = True
|
||||
membership.save()
|
||||
validate_memberships_in_order(
|
||||
customer,
|
||||
[
|
||||
CartPosition(
|
||||
item=requiring_ticket,
|
||||
used_membership=membership
|
||||
)
|
||||
],
|
||||
event,
|
||||
lock=False,
|
||||
ignored_order=None,
|
||||
testmode=False,
|
||||
)
|
||||
assert "test mode" in str(excinfo.value)
|
||||
with pytest.raises(ValidationError) as excinfo:
|
||||
membership.testmode = False
|
||||
membership.save()
|
||||
validate_memberships_in_order(
|
||||
customer,
|
||||
[
|
||||
CartPosition(
|
||||
item=requiring_ticket,
|
||||
used_membership=membership
|
||||
)
|
||||
],
|
||||
event,
|
||||
lock=False,
|
||||
ignored_order=None,
|
||||
testmode=True,
|
||||
)
|
||||
assert "test mode" in str(excinfo.value)
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_validate_membership_wrong_customer(event, customer, membership, requiring_ticket, membership_type):
|
||||
customer2 = event.organizer.customers.create(email="doe@example.org")
|
||||
|
||||
Reference in New Issue
Block a user