mirror of
https://github.com/pretix/pretix.git
synced 2026-05-06 15:24:02 +00:00
Isolate cart sessions
This commit is contained in:
20
src/pretix/testutils/sessions.py
Normal file
20
src/pretix/testutils/sessions.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from django.utils.crypto import get_random_string
|
||||
|
||||
|
||||
def add_cart_session(client, event, data):
|
||||
new_id = get_random_string(length=32)
|
||||
session = client.session
|
||||
session['current_cart_event_{}'.format(event.pk)] = new_id
|
||||
if 'carts' not in session:
|
||||
session['carts'] = {}
|
||||
session['carts'][new_id] = data
|
||||
session.save()
|
||||
return new_id
|
||||
|
||||
|
||||
def get_cart_session_key(client, event):
|
||||
cart_id = client.session.get('current_cart_event_{}'.format(event.pk))
|
||||
if cart_id:
|
||||
return cart_id
|
||||
else:
|
||||
return add_cart_session(client, event, {})
|
||||
Reference in New Issue
Block a user