Fix test failure on PostgreSQL

This commit is contained in:
Raphael Michel
2026-07-17 19:22:50 +02:00
parent 2574b31afd
commit 2de032c2be
2 changed files with 5 additions and 0 deletions
+3
View File
@@ -24,6 +24,7 @@ from typing import List, Optional
from dateutil.relativedelta import relativedelta
from django.core.exceptions import ValidationError
from django.db import transaction
from django.utils.formats import date_format
from django.utils.translation import gettext_lazy as _
@@ -96,6 +97,8 @@ def validate_memberships_in_order(customer: Customer, positions: List[AbstractPo
:param valid_from_not_chosen: Set to ``True`` to indicate that the customer is in an early step of the checkout flow
where the valid_from date is not selected yet. In this case, the valid_from date is not checked.
"""
if lock and not transaction.get_connection().in_atomic_block:
raise Exception('validate_memberships_in_order(lock=True) should only be called in atomic transaction!')
tz = event.timezone
applicable_positions = [
p for p in positions
+2
View File
@@ -26,6 +26,7 @@ from zoneinfo import ZoneInfo
import pytest
from django.conf import settings
from django.core.exceptions import ValidationError
from django.db import transaction
from django.utils.timezone import now
from django_scopes import scope
from freezegun import freeze_time
@@ -211,6 +212,7 @@ def test_validate_membership_required(event, customer, membership, requiring_tic
@pytest.mark.django_db(transaction=True)
@transaction.atomic
def test_validate_membership_ensure_locking(event, customer, membership, requiring_ticket, membership_type, django_assert_num_queries):
with django_assert_num_queries(4) as captured:
validate_memberships_in_order(