mirror of
https://github.com/pretix/pretix.git
synced 2026-05-21 17:54:08 +00:00
Add view tests
This commit is contained in:
@@ -2858,7 +2858,7 @@ class OutgoingMailFilterForm(FilterForm):
|
|||||||
qs = qs.filter(
|
qs = qs.filter(
|
||||||
Q(to__containsstring=query)
|
Q(to__containsstring=query)
|
||||||
| Q(cc__containsstring=query)
|
| Q(cc__containsstring=query)
|
||||||
| Q(bcc_containsstring=query)
|
| Q(bcc__containsstring=query)
|
||||||
| Q(subject__icontains=query)
|
| Q(subject__icontains=query)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -24,12 +24,13 @@ from smtplib import SMTPResponseException
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
import responses
|
import responses
|
||||||
|
from django.conf import settings
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.test.utils import override_settings
|
from django.test.utils import override_settings
|
||||||
from django_scopes import scopes_disabled
|
from django_scopes import scopes_disabled
|
||||||
from tests.base import SoupTest, extract_form_fields
|
from tests.base import SoupTest, extract_form_fields
|
||||||
|
|
||||||
from pretix.base.models import Event, Organizer, Team, User
|
from pretix.base.models import Event, Organizer, OutgoingMail, Team, User
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
@@ -453,3 +454,111 @@ class OrganizerTest(SoupTest):
|
|||||||
self.event1.refresh_from_db()
|
self.event1.refresh_from_db()
|
||||||
assert 'pretix.plugins.banktransfer' not in self.event1.get_plugins()
|
assert 'pretix.plugins.banktransfer' not in self.event1.get_plugins()
|
||||||
assert 'pretix.plugins.stripe' in self.event1.get_plugins()
|
assert 'pretix.plugins.stripe' in self.event1.get_plugins()
|
||||||
|
|
||||||
|
def test_outgoing_mails_list_and_detail(self):
|
||||||
|
m1 = OutgoingMail.objects.create(
|
||||||
|
organizer=self.orga1,
|
||||||
|
to=['rightrecipient@example.com'],
|
||||||
|
subject='Test',
|
||||||
|
body_plain='Test',
|
||||||
|
sender='sender@example.com',
|
||||||
|
headers={},
|
||||||
|
)
|
||||||
|
m2 = OutgoingMail.objects.create(
|
||||||
|
organizer=self.orga2,
|
||||||
|
to=['wrongrecipient@example.com'],
|
||||||
|
subject='Test',
|
||||||
|
body_plain='Test',
|
||||||
|
sender='sender@example.com',
|
||||||
|
headers={},
|
||||||
|
)
|
||||||
|
resp = self.client.get('/control/organizer/%s/outgoingmails' % self.orga1.slug)
|
||||||
|
assert resp.status_code == 200
|
||||||
|
assert b"rightrecipient@example.com" in resp.content
|
||||||
|
assert b"wrongrecipient@example.com" not in resp.content
|
||||||
|
|
||||||
|
resp = self.client.get('/control/organizer/%s/outgoingmails?status=queued' % self.orga1.slug)
|
||||||
|
assert resp.status_code == 200
|
||||||
|
assert b"rightrecipient@example.com" in resp.content
|
||||||
|
resp = self.client.get('/control/organizer/%s/outgoingmails?status=sent' % self.orga1.slug)
|
||||||
|
assert resp.status_code == 200
|
||||||
|
assert b"rightrecipient@example.com" not in resp.content
|
||||||
|
|
||||||
|
if 'postgresql' in settings.DATABASES['default']['ENGINE']:
|
||||||
|
resp = self.client.get('/control/organizer/%s/outgoingmails?query=rightrecipient' % self.orga1.slug)
|
||||||
|
assert resp.status_code == 200
|
||||||
|
assert b"rightrecipient@example.com" in resp.content
|
||||||
|
resp = self.client.get('/control/organizer/%s/outgoingmails?query=wrongrecipient' % self.orga1.slug)
|
||||||
|
assert resp.status_code == 200
|
||||||
|
assert b"rightrecipient@example.com" not in resp.content
|
||||||
|
|
||||||
|
resp = self.client.get('/control/organizer/%s/outgoingmail/%d/' % (self.orga1.slug, m1.pk))
|
||||||
|
assert resp.status_code == 200
|
||||||
|
assert b"rightrecipient@example.com" in resp.content
|
||||||
|
|
||||||
|
resp = self.client.get('/control/organizer/%s/outgoingmail/%d/' % (self.orga1.slug, m2.pk))
|
||||||
|
assert resp.status_code == 404
|
||||||
|
|
||||||
|
def test_outgoing_mails_retry(self):
|
||||||
|
m1 = OutgoingMail.objects.create(
|
||||||
|
organizer=self.orga1,
|
||||||
|
status=OutgoingMail.STATUS_SENT,
|
||||||
|
to=['rightrecipient@example.com'],
|
||||||
|
subject='Test',
|
||||||
|
body_plain='Test',
|
||||||
|
sender='sender@example.com',
|
||||||
|
headers={},
|
||||||
|
)
|
||||||
|
m2 = OutgoingMail.objects.create(
|
||||||
|
organizer=self.orga1,
|
||||||
|
status=OutgoingMail.STATUS_FAILED,
|
||||||
|
to=['rightrecipient@example.com'],
|
||||||
|
subject='Test',
|
||||||
|
body_plain='Test',
|
||||||
|
sender='sender@example.com',
|
||||||
|
headers={},
|
||||||
|
)
|
||||||
|
resp = self.client.post(
|
||||||
|
'/control/organizer/%s/outgoingmail/bulk_action' % self.orga1.slug,
|
||||||
|
data={
|
||||||
|
"action": "retry",
|
||||||
|
"outgoingmail": [m1.pk, m2.pk]
|
||||||
|
}
|
||||||
|
)
|
||||||
|
assert resp.status_code == 302
|
||||||
|
m1.refresh_from_db()
|
||||||
|
m2.refresh_from_db()
|
||||||
|
assert m1.status == OutgoingMail.STATUS_SENT
|
||||||
|
assert m2.status in (OutgoingMail.STATUS_SENT, OutgoingMail.STATUS_QUEUED)
|
||||||
|
|
||||||
|
def test_outgoing_mails_abort(self):
|
||||||
|
m1 = OutgoingMail.objects.create(
|
||||||
|
organizer=self.orga1,
|
||||||
|
status=OutgoingMail.STATUS_SENT,
|
||||||
|
to=['rightrecipient@example.com'],
|
||||||
|
subject='Test',
|
||||||
|
body_plain='Test',
|
||||||
|
sender='sender@example.com',
|
||||||
|
headers={},
|
||||||
|
)
|
||||||
|
m2 = OutgoingMail.objects.create(
|
||||||
|
organizer=self.orga1,
|
||||||
|
status=OutgoingMail.STATUS_QUEUED,
|
||||||
|
to=['rightrecipient@example.com'],
|
||||||
|
subject='Test',
|
||||||
|
body_plain='Test',
|
||||||
|
sender='sender@example.com',
|
||||||
|
headers={},
|
||||||
|
)
|
||||||
|
resp = self.client.post(
|
||||||
|
'/control/organizer/%s/outgoingmail/bulk_action' % self.orga1.slug,
|
||||||
|
data={
|
||||||
|
"action": "abort",
|
||||||
|
"__ALL": "on",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
assert resp.status_code == 302
|
||||||
|
m1.refresh_from_db()
|
||||||
|
m2.refresh_from_db()
|
||||||
|
assert m1.status == OutgoingMail.STATUS_SENT
|
||||||
|
assert m2.status == OutgoingMail.STATUS_ABORTED
|
||||||
|
|||||||
@@ -192,6 +192,9 @@ organizer_urls = [
|
|||||||
'organizer/abc/team/1/edit',
|
'organizer/abc/team/1/edit',
|
||||||
'organizer/abc/team/1/delete',
|
'organizer/abc/team/1/delete',
|
||||||
'organizer/abc/team/add',
|
'organizer/abc/team/add',
|
||||||
|
'organizer/abc/outgoingmails',
|
||||||
|
'organizer/abc/outgoingmail/bulk_action',
|
||||||
|
'organizer/abc/outgoingmail/1/',
|
||||||
'organizer/abc/devices',
|
'organizer/abc/devices',
|
||||||
'organizer/abc/device/add',
|
'organizer/abc/device/add',
|
||||||
'organizer/abc/device/bulk_edit',
|
'organizer/abc/device/bulk_edit',
|
||||||
@@ -528,6 +531,9 @@ organizer_permission_urls = [
|
|||||||
("can_change_organizer_settings", "organizer/dummy/settings/plugins/pretix.plugins.sendmail/events", 200),
|
("can_change_organizer_settings", "organizer/dummy/settings/plugins/pretix.plugins.sendmail/events", 200),
|
||||||
("can_change_organizer_settings", "organizer/dummy/settings/email", 200),
|
("can_change_organizer_settings", "organizer/dummy/settings/email", 200),
|
||||||
("can_change_organizer_settings", "organizer/dummy/settings/email/setup", 200),
|
("can_change_organizer_settings", "organizer/dummy/settings/email/setup", 200),
|
||||||
|
("can_change_organizer_settings", "organizer/dummy/outgoingmails", 200),
|
||||||
|
("can_change_organizer_settings", "organizer/dummy/outgoingmail/1/", 404),
|
||||||
|
("can_change_organizer_settings", "organizer/dummy/outgoingmail/bulk_action", 405),
|
||||||
("can_change_organizer_settings", "organizer/dummy/devices", 200),
|
("can_change_organizer_settings", "organizer/dummy/devices", 200),
|
||||||
("can_change_organizer_settings", "organizer/dummy/devices/select2", 200),
|
("can_change_organizer_settings", "organizer/dummy/devices/select2", 200),
|
||||||
("can_change_organizer_settings", "organizer/dummy/device/add", 200),
|
("can_change_organizer_settings", "organizer/dummy/device/add", 200),
|
||||||
|
|||||||
Reference in New Issue
Block a user