예제 #1
0
class SurveyMailTestCase(BaseTestCase):
    fixtures = [
        "test_abakus_groups.yaml",
        "test_users.yaml",
        "test_companies.yaml",
        "test_events.yaml",
        "test_surveys.yaml",
    ]

    def setUp(self):
        self.survey = Survey.objects.first()
        self.recipient = User.objects.first()
        self.notifier = SurveyNotification(user=self.recipient,
                                           survey=self.survey)

    def assertEmailContains(self, send_mail_mock, content):
        self.notifier.generate_mail()
        email_args = send_mail_mock.call_args[1]
        self.assertIn(content, email_args["message"])
        self.assertIn(content, email_args["html_message"])

    def test_generate_email_name(self, send_mail_mock):
        opening = ("Hei, " + self.recipient.first_name + " " +
                   self.recipient.last_name + "!")
        self.assertEmailContains(send_mail_mock, opening)

    def test_generate_email_event(self, send_mail_mock):
        event = ("Du har en ny undersøkelse å svare på for arrangementet " +
                 self.survey.event.title + ".")
        self.assertEmailContains(send_mail_mock, event)

    def test_generate_email_url(self, send_mail_mock):
        url = settings.FRONTEND_URL + "/surveys/" + str(
            self.survey.id) + "/answer"
        self.assertEmailContains(send_mail_mock, url)
예제 #2
0
class SurveyMailTestCase(BaseTestCase):
    fixtures = [
        'test_abakus_groups.yaml', 'test_users.yaml', 'test_companies.yaml',
        'test_events.yaml', 'test_surveys.yaml'
    ]

    def setUp(self):
        self.survey = Survey.objects.first()
        self.recipient = User.objects.first()
        self.notifier = SurveyNotification(user=self.recipient,
                                           survey=self.survey)

    def assertEmailContains(self, send_mail_mock, content):
        self.notifier.generate_mail()
        email_args = send_mail_mock.call_args[1]
        self.assertIn(content, email_args['message'])
        self.assertIn(content, email_args['html_message'])

    def test_generate_email_name(self, send_mail_mock):
        opening = 'Hei, ' + self.recipient.first_name + ' ' + self.recipient.last_name + '!'
        self.assertEmailContains(send_mail_mock, opening)

    def test_generate_email_event(self, send_mail_mock):
        event = 'Du har en ny undersøkelse å svare på for arrangement ' + self.survey.event.title \
                + '.'
        self.assertEmailContains(send_mail_mock, event)

    def test_generate_email_url(self, send_mail_mock):
        url = settings.FRONTEND_URL + '/surveys/' + str(
            self.survey.id) + '/answer'
        self.assertEmailContains(send_mail_mock, url)
예제 #3
0
파일: tasks.py 프로젝트: vhellem/lego
def send_survey_mail(self, logger_context=None):
    self.setup_logger(logger_context)

    surveys = Survey.objects.filter(active_from__lte=timezone.now(),
                                    sent=False,
                                    template_type=None)
    for survey in surveys.all():
        for registration in survey.event.registrations.filter(
                presence=PRESENT):
            notification = SurveyNotification(registration.user, survey=survey)
            notification.notify()
            track(registration.user,
                  'survey.create',
                  properties={'survey_id': survey.id})
        survey.sent = True
        survey.save()
예제 #4
0
 def setUp(self):
     self.survey = Survey.objects.first()
     self.recipient = User.objects.first()
     self.notifier = SurveyNotification(user=self.recipient,
                                        survey=self.survey)