chore(mailer/tests): unsubscribe view tests

pull/174/head
Christian Merten 4 months ago committed by mariusrklein
parent 15c71938eb
commit c1131a5a17

@ -1,2 +1,3 @@
from .models import * from .models import *
from .admin import * from .admin import *
from .views import *

@ -8,22 +8,7 @@ from django.core.files.uploadedfile import SimpleUploadedFile
from members.models import Member, Group, DIVERSE, Freizeit, MemberNoteList, GEMEINSCHAFTS_TOUR, MUSKELKRAFT_ANREISE from members.models import Member, Group, DIVERSE, Freizeit, MemberNoteList, GEMEINSCHAFTS_TOUR, MUSKELKRAFT_ANREISE
from mailer.models import EmailAddress, EmailAddressForm, Message, MessageForm, Attachment from mailer.models import EmailAddress, EmailAddressForm, Message, MessageForm, Attachment
from mailer.mailutils import SENT, NOT_SENT, PARTLY_SENT from mailer.mailutils import SENT, NOT_SENT, PARTLY_SENT
from .utils import BasicMailerTestCase
class BasicMailerTestCase(TestCase):
def setUp(self):
self.mygroup = Group.objects.create(name="My Group")
self.fritz = Member.objects.create(prename="Fritz", lastname="Wulter", birth_date=timezone.now().date(),
email='fritz@foo.com', gender=DIVERSE)
self.fritz.group.add(self.mygroup)
self.fritz.save()
self.paul = Member.objects.create(prename="Paul", lastname="Wulter", birth_date=timezone.now().date(),
email='paul@foo.com', gender=DIVERSE)
self.em = EmailAddress.objects.create(name='foobar')
self.em.to_groups.add(self.mygroup)
self.em.to_members.add(self.paul)
class EmailAddressTestCase(BasicMailerTestCase): class EmailAddressTestCase(BasicMailerTestCase):

@ -0,0 +1,27 @@
from unittest import skip, mock
from django.test import TestCase
from django.conf import settings
from django.utils import timezone
from django.core.exceptions import ValidationError
from django.utils.translation import gettext as _
from django.core.files.uploadedfile import SimpleUploadedFile
from members.models import Member, Group, DIVERSE, Freizeit, MemberNoteList, GEMEINSCHAFTS_TOUR, MUSKELKRAFT_ANREISE
from mailer.models import EmailAddress, EmailAddressForm, Message, MessageForm, Attachment
from mailer.mailutils import SENT, NOT_SENT, PARTLY_SENT
class BasicMailerTestCase(TestCase):
def setUp(self):
self.mygroup = Group.objects.create(name="My Group")
self.fritz = Member.objects.create(prename="Fritz", lastname="Wulter", birth_date=timezone.now().date(),
email='fritz@foo.com', gender=DIVERSE)
self.fritz.group.add(self.mygroup)
self.fritz.save()
self.fritz.generate_key()
self.paul = Member.objects.create(prename="Paul", lastname="Wulter", birth_date=timezone.now().date(),
email='paul@foo.com', gender=DIVERSE)
self.em = EmailAddress.objects.create(name='foobar')
self.em.to_groups.add(self.mygroup)
self.em.to_members.add(self.paul)

@ -0,0 +1,65 @@
from unittest import skip, mock
from http import HTTPStatus
from django.urls import reverse
from django.test import TestCase
from django.conf import settings
from django.utils import timezone
from django.core.exceptions import ValidationError
from django.utils.translation import gettext as _
from django.core.files.uploadedfile import SimpleUploadedFile
from members.models import Member, Group, DIVERSE, Freizeit, MemberNoteList, GEMEINSCHAFTS_TOUR, MUSKELKRAFT_ANREISE
from mailer.models import EmailAddress, EmailAddressForm, Message, MessageForm, Attachment
from mailer.mailutils import SENT, NOT_SENT, PARTLY_SENT
from .utils import BasicMailerTestCase
class IndexTestCase(BasicMailerTestCase):
def test_index(self):
url = reverse('mailer:index')
response = self.client.get(url)
self.assertEqual(response.status_code, HTTPStatus.FOUND)
class UnsubscribeTestCase(BasicMailerTestCase):
def test_unsubscribe(self):
url = reverse('mailer:unsubscribe')
response = self.client.get(url)
self.assertEqual(response.status_code, HTTPStatus.OK)
self.assertContains(response, _("Here you can unsubscribe from the newsletter"))
def test_unsubscribe_key_invalid(self):
url = reverse('mailer:unsubscribe')
# invalid key
response = self.client.get(url, data={'key': 'invalid'})
self.assertEqual(response.status_code, HTTPStatus.OK)
self.assertContains(response, _("Can't verify this link. Try again!"))
# expired key
self.fritz.unsubscribe_expire = timezone.now()
self.fritz.save()
response = self.client.get(url, data={'key': self.fritz.unsubscribe_key})
self.assertEqual(response.status_code, HTTPStatus.OK)
self.assertContains(response, _("Can't verify this link. Try again!"))
def test_unsubscribe_key(self):
url = reverse('mailer:unsubscribe')
response = self.client.get(url, data={'key': self.fritz.unsubscribe_key})
self.assertEqual(response.status_code, HTTPStatus.OK)
self.assertContains(response, _("Successfully unsubscribed from the newsletter for "))
def test_unsubscribe_post_incomplete(self):
url = reverse('mailer:unsubscribe')
response = self.client.post(url, data={'post': True})
self.assertEqual(response.status_code, HTTPStatus.OK)
self.assertContains(response, _("Please fill in every field"))
response = self.client.post(url, data={'post': True, 'email': 'foobar@notexisting.com'})
self.assertEqual(response.status_code, HTTPStatus.OK)
self.assertContains(response, _("Please fill in every field"))
def test_unsubscribe_post(self):
url = reverse('mailer:unsubscribe')
response = self.client.post(url, data={'post': True, 'email': self.fritz.email})
self.assertEqual(response.status_code, HTTPStatus.OK)
self.assertContains(response, _("Sent confirmation mail to"))
Loading…
Cancel
Save