コード例 #1
0
    def test_save_with_send_test_mail_with_request(self):
        """Testing EMailSettingsForm.save with send_test_mail=True and with
        HTTP request
        """
        user = self.create_user(username='******',
                                email='*****@*****.**')

        siteconfig = SiteConfiguration.objects.get_current()
        form = EMailSettingsForm(siteconfig,
                                 request=self.create_http_request(user=user),
                                 data={
                                     'mail_default_from':
                                     '*****@*****.**',
                                     'send_test_mail': True,
                                 })

        self.assertTrue(form.is_valid())
        form.save()

        self.assertEqual(len(mail.outbox), 1)

        message = mail.outbox[0]
        self.assertEqual(message.subject, 'Review Board e-mail settings test')
        self.assertEqual(
            message.body, "This is a test of the e-mail settings for the "
            "Review Board server at http://example.com. If you "
            "got this, you're all set!")
        self.assertEqual(message.to, ['*****@*****.**'])
        self.assertEqual(message.from_email, '*****@*****.**')

        # Explicitly re-fetch this (without updating the cached copy) to
        # check the result.
        siteconfig = SiteConfiguration.objects.get(pk=siteconfig.pk)
        self.assertNotIn('send_test_mail', siteconfig.settings)
コード例 #2
0
    def test_save(self):
        """Testing EMailSettingsForm.save"""
        siteconfig = SiteConfiguration.objects.get_current()

        # Set defaults, so we know our changes are going to apply.
        siteconfig.set('mail_enable_autogenerated_header', False)
        siteconfig.set('mail_send_new_user_mail', False)
        siteconfig.set('mail_send_password_changed_mail', False)
        siteconfig.set('mail_send_review_close_mail', False)
        siteconfig.set('mail_send_review_mail', False)
        siteconfig.set('mail_use_tls', False)
        siteconfig.set('mail_default_from', '*****@*****.**')
        siteconfig.set('mail_from_spoofing', EmailMessage.FROM_SPOOFING_NEVER)
        siteconfig.set('mail_host', 'localhost')
        siteconfig.set('mail_host_password', '')
        siteconfig.set('mail_host_user', '')
        siteconfig.set('mail_port', 25)
        siteconfig.save()

        form = EMailSettingsForm(siteconfig,
                                 data={
                                     'mail_default_from':
                                     '*****@*****.**',
                                     'mail_enable_autogenerated_header': True,
                                     'mail_from_spoofing':
                                     EmailMessage.FROM_SPOOFING_SMART,
                                     'mail_host': 'mail.example.com',
                                     'mail_host_password': '******',
                                     'mail_host_user': '******',
                                     'mail_port': 123,
                                     'mail_send_new_user_mail': True,
                                     'mail_send_password_changed_mail': True,
                                     'mail_send_review_close_mail': True,
                                     'mail_send_review_mail': True,
                                     'mail_use_tls': True,
                                 })

        self.assertTrue(form.is_valid())
        form.save()

        # send_test_mail was not set.
        self.assertEqual(len(mail.outbox), 0)

        # Explicitly re-fetch this (without updating the cached copy) to
        # check the result.
        siteconfig = SiteConfiguration.objects.get(pk=siteconfig.pk)
        self.assertTrue(siteconfig.get('mail_enable_autogenerated_header'))
        self.assertTrue(siteconfig.get('mail_send_new_user_mail'))
        self.assertTrue(siteconfig.get('mail_send_password_changed_mail'))
        self.assertTrue(siteconfig.get('mail_send_review_close_mail'))
        self.assertTrue(siteconfig.get('mail_send_review_mail'))
        self.assertTrue(siteconfig.get('mail_use_tls'))
        self.assertEqual(siteconfig.get('mail_default_from'),
                         '*****@*****.**')
        self.assertEqual(siteconfig.get('mail_from_spoofing'),
                         EmailMessage.FROM_SPOOFING_SMART)
        self.assertEqual(siteconfig.get('mail_host'), 'mail.example.com')
        self.assertEqual(siteconfig.get('mail_host_password'), 's3cr3t')
        self.assertEqual(siteconfig.get('mail_host_user'), 'mail-user')
        self.assertEqual(siteconfig.get('mail_port'), 123)
コード例 #3
0
    def test_save_with_send_test_mail_without_request_and_error(self):
        """Testing EMailSettingsForm.save with send_test_mail=True without
        HTTP request and error sending e-mail
        """
        self.spy_on(logger.exception)
        self.spy_on(mail.send_mail, op=kgb.SpyOpRaise(Exception('Kaboom!')))

        siteconfig = SiteConfiguration.objects.get_current()
        form = EMailSettingsForm(siteconfig,
                                 data={
                                     'mail_default_from':
                                     '*****@*****.**',
                                     'send_test_mail': True,
                                 })

        self.assertTrue(form.is_valid())
        form.save()

        self.assertEqual(len(mail.outbox), 0)
        self.assertSpyCalledWith(logger.exception,
                                 'Failed to send test e-mail to %s: %s',
                                 '*****@*****.**', 'Kaboom!')
コード例 #4
0
    def test_save_with_send_test_mail_with_request_and_error(self):
        """Testing EMailSettingsForm.save with send_test_mail=True with
        HTTP request and error sending e-mail
        """
        self.spy_on(logger.exception)
        self.spy_on(mail.send_mail, op=kgb.SpyOpRaise(Exception('Kaboom!')))

        user = self.create_user(username='******',
                                email='*****@*****.**')
        request = self.create_http_request(user=user)

        siteconfig = SiteConfiguration.objects.get_current()
        form = EMailSettingsForm(siteconfig,
                                 request=request,
                                 data={
                                     'mail_default_from':
                                     '*****@*****.**',
                                     'send_test_mail': True,
                                 })

        self.assertTrue(form.is_valid())
        form.save()

        self.assertEqual(len(mail.outbox), 0)
        self.assertSpyCalledWith(logger.exception,
                                 'Failed to send test e-mail to %s: %s',
                                 '*****@*****.**', 'Kaboom!')

        msgs = list(messages.get_messages(request))
        self.assertEqual(len(msgs), 1)

        msg = msgs[0]
        self.assertEqual(msg.level, messages.ERROR)
        self.assertEqual(
            msg.message, 'Failed to send the test e-mail: "Kaboom!". Check '
            'the server logs for additional details.')