UPD: More and better tests.
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import datetime
|
||||
from django.apps import apps
|
||||
from django.contrib.auth import get_user_model
|
||||
@@ -7,25 +8,24 @@ from django.test import TestCase
|
||||
|
||||
from dav_base.tests.generic import EmailTestMixin
|
||||
|
||||
from ..models.event import Event
|
||||
from ..models.oneclickaction import OneClickAction
|
||||
|
||||
from .generic import RoleMixin
|
||||
from .generic import RoleMixin, EventMixin
|
||||
|
||||
TEST_EVENT_DATA = {
|
||||
'title': u'Täst',
|
||||
'description': u'Teßt',
|
||||
'title': 'Täst',
|
||||
'description': 'Teßt',
|
||||
'mode': 'joint',
|
||||
'sport': 'W',
|
||||
'level': 'beginner',
|
||||
'first_day': datetime.date(2019, 3, 1),
|
||||
'country': 'DE',
|
||||
'trainer_firstname': u'Übungsleiter',
|
||||
'trainer_familyname': u'Weißalles',
|
||||
'trainer_firstname': 'Übungsleiter',
|
||||
'trainer_familyname': 'Weißalles',
|
||||
'trainer_email': 'trainer@localhost',
|
||||
}
|
||||
|
||||
EVENT_UPDATED_EMAIL_TEMPLATE = u"""Hallo {recipient_first_name},
|
||||
EVENT_UPDATED_EMAIL_TEMPLATE = """Hallo {recipient_first_name},
|
||||
|
||||
{editor_full_name} hat die folgende Veranstaltung geändert:
|
||||
{event}
|
||||
@@ -53,7 +53,7 @@ Link zur Veranstaltung:
|
||||
Veröffentlichung: sofort
|
||||
"""
|
||||
|
||||
EVENT_SUBMITTED_EMAIL_TEMPLATE = u"""Hallo {recipient_first_name},
|
||||
EVENT_SUBMITTED_EMAIL_TEMPLATE = """Hallo {recipient_first_name},
|
||||
|
||||
eine Veranstaltung wurde in deinem Namen eingereicht.
|
||||
Die entsprechenden Referenten wurden informiert, um deine Veranstaltung frei zu geben.
|
||||
@@ -67,7 +67,7 @@ Ausschreibung:
|
||||
==============
|
||||
{event_text}"""
|
||||
|
||||
EVENT_TO_ACCEPT_EMAIL_TEMPLATE = u"""Hallo {recipient_first_name},
|
||||
EVENT_TO_ACCEPT_EMAIL_TEMPLATE = """Hallo {recipient_first_name},
|
||||
|
||||
{trainer_firstname} {trainer_familyname} hat eine Veranstaltung eingereicht.
|
||||
|
||||
@@ -99,7 +99,7 @@ Bearbeitungshinweis:
|
||||
====================
|
||||
{internal_note}"""
|
||||
|
||||
EVENT_TO_PUBLISH_WEB_EMAIL_TEMPLATE = u"""Hallo {recipient_first_name},
|
||||
EVENT_TO_PUBLISH_WEB_EMAIL_TEMPLATE = """Hallo {recipient_first_name},
|
||||
|
||||
{trainer_firstname} {trainer_familyname} hat eine neue Veranstaltung eingereicht.
|
||||
Die Veranstaltung wurde von {editor_full_name} zur Veröffentlichung
|
||||
@@ -132,7 +132,7 @@ Joomla HTML
|
||||
</p>
|
||||
"""
|
||||
|
||||
EVENT_TO_PUBLISH_FACEBOOK_EMAIL_TEMPLATE = u"""Hallo {recipient_first_name},
|
||||
EVENT_TO_PUBLISH_FACEBOOK_EMAIL_TEMPLATE = """Hallo {recipient_first_name},
|
||||
|
||||
{trainer_firstname} {trainer_familyname} hat eine neue Veranstaltung eingereicht.
|
||||
Die Veranstaltung wurde von {editor_full_name} zur Veröffentlichung
|
||||
@@ -154,7 +154,7 @@ Ausschreibung:
|
||||
{event_text}"""
|
||||
|
||||
|
||||
class EmailTestCase(EmailTestMixin, RoleMixin, TestCase):
|
||||
class EmailTestCase(EmailTestMixin, RoleMixin, EventMixin, TestCase):
|
||||
def setUp(self):
|
||||
super(EmailTestCase, self).setUp()
|
||||
|
||||
@@ -164,8 +164,7 @@ class EmailTestCase(EmailTestMixin, RoleMixin, TestCase):
|
||||
self.app_settings = app_config.settings
|
||||
|
||||
event_data = TEST_EVENT_DATA
|
||||
self.event = Event(**event_data)
|
||||
self.event.save()
|
||||
self.event = self.create_event(event_data)
|
||||
self.trainer = self.event.owner
|
||||
|
||||
self.manager_super = self.create_user_for_role('manager_super', 'password', 'Touren', 'Referent')
|
||||
@@ -177,20 +176,20 @@ class EmailTestCase(EmailTestMixin, RoleMixin, TestCase):
|
||||
model = get_user_model()
|
||||
self.recipient = model.objects.create_user(username='recipient@example.com',
|
||||
email='recipient@example.com',
|
||||
password=u'mellon12',
|
||||
first_name=u'Re Ö.',
|
||||
last_name=u'Cipient',
|
||||
password='mellon12',
|
||||
first_name='Re Ö.',
|
||||
last_name='Cipient',
|
||||
)
|
||||
self.editor = model.objects.create_user(username='editor@example.com',
|
||||
email='editor@example.com',
|
||||
password=u'mellon12',
|
||||
first_name=u'Ed Ü.',
|
||||
last_name=u'Itor',
|
||||
password='mellon12',
|
||||
first_name='Ed Ü.',
|
||||
last_name='Itor',
|
||||
)
|
||||
|
||||
def test_disabled_mail(self):
|
||||
self.event.workflow.update_status('submitted', self.trainer)
|
||||
self.event.description += u' Gößweinstein'
|
||||
self.event.description += ' Gößweinstein'
|
||||
self.event.save()
|
||||
self.event.workflow.update_status('accepted', self.editor)
|
||||
self.event.first_day += datetime.timedelta(1)
|
||||
@@ -203,14 +202,14 @@ class EmailTestCase(EmailTestMixin, RoleMixin, TestCase):
|
||||
|
||||
self.app_settings.enable_email_on_update = True
|
||||
self.event.workflow.update_status('submitted', self.trainer)
|
||||
self.event.description += u' Gößweinstein'
|
||||
self.event.description += ' Gößweinstein'
|
||||
self.event.save()
|
||||
self.assertEqual(len(django_mail.outbox), 2)
|
||||
|
||||
mail = django_mail.outbox[0]
|
||||
self.assertSender(mail)
|
||||
self.assertRecipients(mail, [expected_recipient])
|
||||
self.assertSubject(mail, u'Veranstaltung geändert')
|
||||
self.assertSubject(mail, 'Veranstaltung geändert')
|
||||
|
||||
expected_body = EVENT_UPDATED_EMAIL_TEMPLATE.format(
|
||||
recipient_first_name=expected_recipient.first_name,
|
||||
@@ -231,7 +230,7 @@ class EmailTestCase(EmailTestMixin, RoleMixin, TestCase):
|
||||
mail = django_mail.outbox[0]
|
||||
self.assertSender(mail)
|
||||
self.assertRecipients(mail, [expected_recipient])
|
||||
self.assertSubject(mail, u'Veranstaltung eingereicht')
|
||||
self.assertSubject(mail, 'Veranstaltung eingereicht')
|
||||
|
||||
expected_body = EVENT_SUBMITTED_EMAIL_TEMPLATE.format(
|
||||
recipient_first_name=expected_recipient.first_name,
|
||||
@@ -251,7 +250,7 @@ class EmailTestCase(EmailTestMixin, RoleMixin, TestCase):
|
||||
mail = django_mail.outbox[1]
|
||||
self.assertSender(mail)
|
||||
self.assertRecipients(mail, [expected_recipient])
|
||||
self.assertSubject(mail, u'Veranstaltung freigeben')
|
||||
self.assertSubject(mail, 'Veranstaltung freigeben')
|
||||
|
||||
action_parameters = '{},{},{}'.format(self.event.id, 'accepted', expected_recipient.id)
|
||||
action = OneClickAction.objects.get(parameters=action_parameters)
|
||||
@@ -272,9 +271,9 @@ class EmailTestCase(EmailTestMixin, RoleMixin, TestCase):
|
||||
editor = self.manager_w
|
||||
|
||||
self.event.workflow.update_status('submitted', self.trainer)
|
||||
self.event.internal_note = u'Automatischer Software Test.'
|
||||
self.event.internal_note = 'Automatischer Software Test.'
|
||||
self.event.planned_publication_date = datetime.date(2019, 3, 24)
|
||||
ppd_string = u'Sonntag, 24. März 2019'
|
||||
ppd_string = 'Sonntag, 24. März 2019'
|
||||
self.event.save()
|
||||
|
||||
self.app_settings.enable_email_on_status_update = True
|
||||
@@ -284,7 +283,7 @@ class EmailTestCase(EmailTestMixin, RoleMixin, TestCase):
|
||||
mail = django_mail.outbox[0]
|
||||
self.assertSender(mail)
|
||||
self.assertRecipients(mail, [expected_recipient])
|
||||
self.assertSubject(mail, u'{}: Veranstaltung freigegeben'.format(self.event.number))
|
||||
self.assertSubject(mail, '{}: Veranstaltung freigegeben'.format(self.event.number))
|
||||
|
||||
expected_body = EVENT_ACCEPTED_EMAIL_TEMPLATE.format(
|
||||
recipient_first_name=expected_recipient.first_name,
|
||||
@@ -302,9 +301,9 @@ class EmailTestCase(EmailTestMixin, RoleMixin, TestCase):
|
||||
editor = self.manager_w
|
||||
|
||||
self.event.workflow.update_status('submitted', self.trainer)
|
||||
self.event.internal_note = u'Automatischer Software Test.'
|
||||
self.event.internal_note = 'Automatischer Software Test.'
|
||||
self.event.planned_publication_date = datetime.date(2019, 3, 24)
|
||||
ppd_string = u'Sonntag, 24. März 2019'
|
||||
ppd_string = 'Sonntag, 24. März 2019'
|
||||
self.event.save()
|
||||
|
||||
self.app_settings.enable_email_on_status_update = True
|
||||
@@ -314,7 +313,7 @@ class EmailTestCase(EmailTestMixin, RoleMixin, TestCase):
|
||||
mail = django_mail.outbox[1]
|
||||
self.assertSender(mail)
|
||||
self.assertRecipients(mail, [expected_recipient])
|
||||
self.assertSubject(mail, u'{}: Veranstaltung veröffentlichen'.format(self.event.number))
|
||||
self.assertSubject(mail, '{}: Veranstaltung veröffentlichen'.format(self.event.number))
|
||||
|
||||
action_parameters = '{},{},{}'.format(self.event.id, 'publishing_web', expected_recipient.id)
|
||||
action = OneClickAction.objects.get(parameters=action_parameters)
|
||||
@@ -352,7 +351,7 @@ class EmailTestCase(EmailTestMixin, RoleMixin, TestCase):
|
||||
mail = django_mail.outbox[2]
|
||||
self.assertSender(mail)
|
||||
self.assertRecipients(mail, [expected_recipient])
|
||||
self.assertSubject(mail, u'{}: Veranstaltung veröffentlichen'.format(self.event.number))
|
||||
self.assertSubject(mail, '{}: Veranstaltung veröffentlichen'.format(self.event.number))
|
||||
|
||||
action_parameters = '{},{},{}'.format(self.event.id, 'publishing_facebook', expected_recipient.id)
|
||||
action = OneClickAction.objects.get(parameters=action_parameters)
|
||||
|
||||
Reference in New Issue
Block a user