diff --git a/src/pretix/presale/views/__init__.py b/src/pretix/presale/views/__init__.py index cc0dbc016e..5261894b69 100644 --- a/src/pretix/presale/views/__init__.py +++ b/src/pretix/presale/views/__init__.py @@ -158,7 +158,7 @@ def get_cart_total(request): else: request._cart_total_cache = CartPosition.objects.filter( cart_id=request.session.session_key, event=request.event - ).aggregate(sum=Sum('price'))['sum'] + ).aggregate(sum=Sum('price'))['sum'] or 0 return request._cart_total_cache diff --git a/src/tests/presale/test_checkoutflow.py b/src/tests/presale/test_checkoutflow.py index 7ec1ca8702..d69294f761 100644 --- a/src/tests/presale/test_checkoutflow.py +++ b/src/tests/presale/test_checkoutflow.py @@ -94,8 +94,9 @@ def test_step_ignored(event, mocker, req_with_session): flow = with_mocked_step(mocker, MockingStep, event) req_with_session.event = event - assert flow[1].get_next_applicable(req_with_session) is flow[3] - assert flow[1] is flow[3].get_prev_applicable(req_with_session) + assert flow[1].get_next_applicable(req_with_session) is flow[4] + # flow[3] is also skipped because no payment is required if there is no cart + assert flow[1] is flow[4].get_prev_applicable(req_with_session) @pytest.mark.django_db