Exemplo n.º 1
0
    def test_sender_id_validation(self):
        sender_ids_to_test = [
            feconf.SYSTEM_COMMITTER_ID, self.ADMIN_ID, self.MODERATOR_ID,
            self.EDITOR_ID
        ]

        # These are given in the order of user_ids_to_test.
        expected_validation_results = {
            email_models.INTENT_SIGNUP: (True, False, False, False),
            email_models.INTENT_DAILY_BATCH: (True, False, False, False),
            email_models.INTENT_MARKETING: (False, True, False, False),
            email_models.INTENT_PUBLICIZE_EXPLORATION:
            (False, True, True, False),
            email_models.INTENT_UNPUBLISH_EXPLORATION:
            (False, True, True, False),
            email_models.INTENT_DELETE_EXPLORATION: (False, True, True, False),
        }

        for intent in expected_validation_results:
            for ind, sender_id in enumerate(sender_ids_to_test):
                if expected_validation_results[intent][ind]:
                    email_manager._require_sender_id_is_valid(
                        intent, sender_id)
                else:
                    with self.assertRaisesRegexp(Exception,
                                                 'Invalid sender_id'):
                        email_manager._require_sender_id_is_valid(
                            intent, sender_id)

        # Also test null and invalid intent strings.
        with self.assertRaisesRegexp(Exception, 'Invalid email intent string'):
            email_manager._require_sender_id_is_valid(
                '', feconf.SYSTEM_COMMITTER_ID)
        with self.assertRaisesRegexp(Exception, 'Invalid email intent string'):
            email_manager._require_sender_id_is_valid('', self.ADMIN_ID)
        with self.assertRaisesRegexp(Exception, 'Invalid email intent string'):
            email_manager._require_sender_id_is_valid(
                'invalid_intent', feconf.SYSTEM_COMMITTER_ID)
        with self.assertRaisesRegexp(Exception, 'Invalid email intent string'):
            email_manager._require_sender_id_is_valid('invalid_intent',
                                                      self.ADMIN_ID)
Exemplo n.º 2
0
    def test_sender_id_validation(self):
        sender_ids_to_test = [
            feconf.SYSTEM_COMMITTER_ID, self.admin_id, self.moderator_id,
            self.editor_id]

        # These are given in the order of user_ids_to_test.
        expected_validation_results = {
            feconf.EMAIL_INTENT_SIGNUP: (True, False, False, False),
            feconf.EMAIL_INTENT_DAILY_BATCH: (True, False, False, False),
            feconf.EMAIL_INTENT_MARKETING: (False, True, False, False),
            feconf.EMAIL_INTENT_PUBLICIZE_EXPLORATION: (
                False, True, True, False),
            feconf.EMAIL_INTENT_UNPUBLISH_EXPLORATION: (
                False, True, True, False),
            feconf.EMAIL_INTENT_DELETE_EXPLORATION: (
                False, True, True, False),
        }

        # pylint: disable=protected-access
        for intent in expected_validation_results:
            for ind, sender_id in enumerate(sender_ids_to_test):
                if expected_validation_results[intent][ind]:
                    email_manager._require_sender_id_is_valid(
                        intent, sender_id)
                else:
                    with self.assertRaisesRegexp(
                        Exception, 'Invalid sender_id'
                        ):
                        email_manager._require_sender_id_is_valid(
                            intent, sender_id)

        # Also test null and invalid intent strings.
        with self.assertRaisesRegexp(Exception, 'Invalid email intent string'):
            email_manager._require_sender_id_is_valid(
                '', feconf.SYSTEM_COMMITTER_ID)
        with self.assertRaisesRegexp(Exception, 'Invalid email intent string'):
            email_manager._require_sender_id_is_valid(
                '', self.admin_id)
        with self.assertRaisesRegexp(Exception, 'Invalid email intent string'):
            email_manager._require_sender_id_is_valid(
                'invalid_intent', feconf.SYSTEM_COMMITTER_ID)
        with self.assertRaisesRegexp(Exception, 'Invalid email intent string'):
            email_manager._require_sender_id_is_valid(
                'invalid_intent', self.admin_id)