mirror of
https://github.com/pretix/pretix.git
synced 2026-05-04 15:04:03 +00:00
Always process tasks through celery (#245)
This commit is contained in:
@@ -5,6 +5,9 @@ from django.utils.timezone import now
|
||||
|
||||
from pretix.base.models import Event, EventLock, Organizer
|
||||
from pretix.base.services import locking
|
||||
from pretix.base.services.locking import (
|
||||
LockReleaseException, LockTimeoutException,
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@@ -20,7 +23,7 @@ def event():
|
||||
@pytest.mark.django_db
|
||||
def test_locking_exclusive(event):
|
||||
with event.lock():
|
||||
with pytest.raises(EventLock.LockTimeoutException):
|
||||
with pytest.raises(LockTimeoutException):
|
||||
ev = Event.objects.get(id=event.id)
|
||||
with ev.lock():
|
||||
pass
|
||||
@@ -41,10 +44,10 @@ def test_locking_different_events(event):
|
||||
def test_lock_timeout_steal(event):
|
||||
locking.LOCK_TIMEOUT = 1
|
||||
locking.lock_event(event)
|
||||
with pytest.raises(EventLock.LockTimeoutException):
|
||||
with pytest.raises(LockTimeoutException):
|
||||
ev = Event.objects.get(id=event.id)
|
||||
locking.lock_event(ev)
|
||||
time.sleep(1.5)
|
||||
locking.lock_event(ev)
|
||||
with pytest.raises(EventLock.LockReleaseException):
|
||||
with pytest.raises(LockReleaseException):
|
||||
locking.release_event(event)
|
||||
|
||||
@@ -298,7 +298,7 @@ def test_order_download_disabled_provider(client, env):
|
||||
@pytest.mark.django_db
|
||||
def test_order_download_success(client, env, mocker):
|
||||
from pretix.base.services import tickets
|
||||
mocker.patch('pretix.base.services.tickets.generate')
|
||||
mocker.patch('pretix.base.services.tickets.generate.apply_async')
|
||||
o = Order.objects.get(id=env[2].id)
|
||||
o.status = Order.STATUS_PAID
|
||||
o.save()
|
||||
@@ -308,16 +308,16 @@ def test_order_download_success(client, env, mocker):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.get('/control/event/dummy/dummy/orders/FOO/download/testdummy')
|
||||
assert response.status_code == 302
|
||||
tickets.generate.assert_any_call(o.id, 'testdummy')
|
||||
tickets.generate.apply_async.assert_any_call(args=(o.id, 'testdummy'))
|
||||
assert 'download' in response['Location']
|
||||
dl = response['Location']
|
||||
assert CachedTicket.objects.filter(order=o, provider='testdummy').exists()
|
||||
|
||||
# test caching
|
||||
tickets.generate.reset_mock()
|
||||
tickets.generate.apply_async.reset_mock()
|
||||
response = client.get('/control/event/dummy/dummy/orders/FOO/download/testdummy')
|
||||
assert response.status_code == 302
|
||||
assert tickets.generate.assert_not_called()
|
||||
assert tickets.generate.apply_async.assert_not_called()
|
||||
assert dl == response['Location']
|
||||
|
||||
|
||||
|
||||
@@ -15,3 +15,5 @@ EMAIL_BACKEND = 'django.core.mail.outbox'
|
||||
COMPRESS_ENABLED = COMPRESS_OFFLINE = False
|
||||
|
||||
PASSWORD_HASHERS = ['django.contrib.auth.hashers.MD5PasswordHasher']
|
||||
|
||||
CELERY_ALWAYS_EAGER = True
|
||||
|
||||
Reference in New Issue
Block a user