예제 #1
0
    def test_sending_email(self):
        # Emails are not sent if the CAN_SEND_EMAILS setting is not turned on.
        email_exception = self.assertRaisesRegexp(
            Exception, 'This app cannot send emails.')
        messages = self.mail_stub.get_sent_messages(
            to=feconf.ADMIN_EMAIL_ADDRESS)
        self.assertEqual(0, len(messages))
        with self.swap(feconf, 'CAN_SEND_EMAILS', False), email_exception:
            gae_email_services.send_mail(self.SENDER_EMAIL,
                                         feconf.ADMIN_EMAIL_ADDRESS,
                                         'subject',
                                         'body',
                                         'html',
                                         bcc_admin=False)
        messages = self.mail_stub.get_sent_messages(
            to=feconf.ADMIN_EMAIL_ADDRESS)
        self.assertEqual(0, len(messages))

        messages = self.mail_stub.get_sent_messages(
            to=feconf.ADMIN_EMAIL_ADDRESS)
        self.assertEqual(0, len(messages))
        with self.swap(feconf, 'CAN_SEND_EMAILS', True):
            gae_email_services.send_mail(self.SENDER_EMAIL,
                                         feconf.ADMIN_EMAIL_ADDRESS,
                                         'subject',
                                         'body',
                                         'html',
                                         bcc_admin=False)
        messages = self.mail_stub.get_sent_messages(
            to=feconf.ADMIN_EMAIL_ADDRESS)
        self.assertEqual(1, len(messages))
예제 #2
0
 def test_sending_email_without_reply_to_id_not_add_reply_to_email(self):
     """Tests that email does not have reply_to_address if reply_to_id is
     not passed.
     """
     messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
     self.assertEqual(0, len(messages))
     with self.swap(feconf, 'CAN_SEND_EMAILS', True):
         gae_email_services.send_mail(self.SENDER_EMAIL,
                                      self.RECIPIENT_EMAIL, 'subject',
                                      'body', 'html')
     messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
     self.assertFalse(hasattr(messages[0], 'reply_to'))
예제 #3
0
 def test_email_bcc_not_sent_if_bcc_admin_is_false(self):
     # Tests that email has no bcc attribute if bcc_admin is False.
     messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
     self.assertEqual(0, len(messages))
     with self.swap(feconf, 'CAN_SEND_EMAILS', True):
         gae_email_services.send_mail(self.SENDER_EMAIL,
                                      self.RECIPIENT_EMAIL,
                                      'subject',
                                      'body',
                                      'html',
                                      bcc_admin=False)
     messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
     self.assertEqual(1, len(messages))
     self.assertFalse(hasattr(messages[0], 'bcc'))
예제 #4
0
 def test_email_bcc_is_sent_if_bcc_admin_is_true(self):
     # Tests that email has ADMIN_EMAIL_ADDRESS as bcc if bcc_admin is True.
     messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
     self.assertEqual(0, len(messages))
     with self.swap(feconf, 'CAN_SEND_EMAILS', True):
         gae_email_services.send_mail(self.SENDER_EMAIL,
                                      self.RECIPIENT_EMAIL,
                                      'subject',
                                      'body',
                                      'html',
                                      bcc_admin=True)
     messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
     self.assertEqual(1, len(messages))
     self.assertEqual(messages[0].bcc, feconf.ADMIN_EMAIL_ADDRESS)
예제 #5
0
    def test_sending_email_with_reply_to_id_adds_reply_to_email(self):
        # Tests that email has reply_to_address if reply_to_id is passed.
        messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
        self.assertEqual(0, len(messages))

        reply_to_id = 'reply_to_id'
        with self.swap(feconf, 'CAN_SEND_EMAILS', True):
            gae_email_services.send_mail(self.SENDER_EMAIL,
                                         self.RECIPIENT_EMAIL,
                                         'subject',
                                         'body',
                                         'html',
                                         reply_to_id=reply_to_id)
        messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
        expected_reply_to_address = '*****@*****.**'
        self.assertEqual(messages[0].reply_to, expected_reply_to_address)
    def test_sending_email(self):
        # Emails are not sent if the CAN_SEND_EMAILS setting is not turned on.
        email_exception = (
            self.assertRaisesRegexp(Exception, 'This app cannot send emails.'))
        with self.swap(feconf, 'CAN_SEND_EMAILS', False), email_exception:
            gae_email_services.send_mail(
                feconf.SYSTEM_EMAIL_ADDRESS, feconf.ADMIN_EMAIL_ADDRESS,
                'subject', 'body', 'html', bcc_admin=False)
        messages = self.mail_stub.get_sent_messages(
            to=feconf.ADMIN_EMAIL_ADDRESS)
        self.assertEqual(0, len(messages))

        with self.swap(feconf, 'CAN_SEND_EMAILS', True):
            gae_email_services.send_mail(
                feconf.SYSTEM_EMAIL_ADDRESS, feconf.ADMIN_EMAIL_ADDRESS,
                'subject', 'body', 'html', bcc_admin=False)
        messages = self.mail_stub.get_sent_messages(
            to=feconf.ADMIN_EMAIL_ADDRESS)
        self.assertEqual(1, len(messages))
예제 #7
0
    def test_email_not_sent_if_recipient_address_is_malformed(self):
        # Tests that email is not sent if recipient email address is malformed.

        # Case when malformed_recipient_email is None.
        malformed_recipient_email = None
        email_exception = self.assertRaisesRegexp(
            ValueError, 'Malformed recipient email address: %s' %
            malformed_recipient_email)
        with self.swap(feconf, 'CAN_SEND_EMAILS', True), email_exception:
            gae_email_services.send_mail(self.SENDER_EMAIL,
                                         malformed_recipient_email, 'subject',
                                         'body', 'html')

        # Case when malformed_recipient_email is an empty string.
        malformed_recipient_email = ''
        email_exception = self.assertRaisesRegexp(
            ValueError, 'Malformed recipient email address: %s' %
            malformed_recipient_email)
        with self.swap(feconf, 'CAN_SEND_EMAILS', True), email_exception:
            gae_email_services.send_mail(self.SENDER_EMAIL,
                                         malformed_recipient_email, 'subject',
                                         'body', 'html')
예제 #8
0
    def test_email_not_sent_if_sender_address_is_malformed(self):
        # Tests that email is not send if sender email address is malformed.

        # Case when malformed_sender_email is None.
        messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
        self.assertEqual(0, len(messages))
        malformed_sender_email = None
        email_exception = self.assertRaisesRegexp(
            ValueError,
            'Malformed sender email address: %s' % malformed_sender_email)
        with self.swap(feconf, 'CAN_SEND_EMAILS', True), email_exception:
            gae_email_services.send_mail(malformed_sender_email,
                                         self.RECIPIENT_EMAIL, 'subject',
                                         'body', 'html')
        messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
        self.assertEqual(0, len(messages))

        # Case when malformed_sender_email is an empty string.
        messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
        self.assertEqual(0, len(messages))
        malformed_sender_email = ''
        email_exception = self.assertRaisesRegexp(
            ValueError,
            'Malformed sender email address: %s' % malformed_sender_email)
        with self.swap(feconf, 'CAN_SEND_EMAILS', True), email_exception:
            gae_email_services.send_mail(malformed_sender_email,
                                         self.RECIPIENT_EMAIL, 'subject',
                                         'body', 'html')
        messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
        self.assertEqual(0, len(messages))

        # Case when malformed_sender_email does not have name of the sender,
        # only the email address.
        messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
        self.assertEqual(0, len(messages))
        malformed_sender_email = '<*****@*****.**>'
        email_exception = self.assertRaisesRegexp(
            ValueError,
            'Malformed sender email address: %s' % malformed_sender_email)
        with self.swap(feconf, 'CAN_SEND_EMAILS', True), email_exception:
            gae_email_services.send_mail(malformed_sender_email,
                                         self.RECIPIENT_EMAIL, 'subject',
                                         'body', 'html')
        messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
        self.assertEqual(0, len(messages))

        # Case when malformed_sender_email does not have email address of the
        # sender and only the name.
        messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
        self.assertEqual(0, len(messages))
        malformed_sender_email = 'MalfomedSender'
        email_exception = self.assertRaisesRegexp(
            ValueError,
            'Malformed sender email address: %s' % malformed_sender_email)
        with self.swap(feconf, 'CAN_SEND_EMAILS', True), email_exception:
            gae_email_services.send_mail(malformed_sender_email,
                                         self.RECIPIENT_EMAIL, 'subject',
                                         'body', 'html')
        messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
        self.assertEqual(0, len(messages))

        # Case when malformed_sender_email does not have email address of the
        # form '<sender_email_address>'.
        messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
        self.assertEqual(0, len(messages))
        malformed_sender_email = 'MalformedSender [email protected]'
        email_exception = self.assertRaisesRegexp(
            ValueError,
            'Malformed sender email address: %s' % malformed_sender_email)
        with self.swap(feconf, 'CAN_SEND_EMAILS', True), email_exception:
            gae_email_services.send_mail(malformed_sender_email,
                                         self.RECIPIENT_EMAIL, 'subject',
                                         'body', 'html')
        messages = self.mail_stub.get_sent_messages(to=self.RECIPIENT_EMAIL)
        self.assertEqual(0, len(messages))