Exemple #1
0
    def test_send_to(self, get_emails_for_users, get_sendable_users,
                     get_value):
        opts = {}

        member_emails = ['2', '3']
        project_emails = ['2', '4']

        get_value.side_effect = lambda p, k, d: opts.get(k, d)
        get_emails_for_users.side_effect = lambda x: x
        get_sendable_users.return_value = member_emails

        project = mock.Mock()
        project.id = 1
        project.pk = project.id

        p = MailProcessor()
        # member emails without admins
        self.assertEqual(sorted(set(member_emails)),
                         sorted(p.get_send_to(project)))

        # project emails without members
        opts = {
            'mail:send_to': ','.join(project_emails),
            'mail:send_to_members': False
        }
        self.assertEqual(sorted(set(project_emails)),
                         sorted(p.get_send_to(project)))
Exemple #2
0
    def test_send_to(self):
        Mock = mock.Mock
        with mock.patch('sentry.models.ProjectOption.objects.get_value') as get_value:
            opts = {}
            get_value.side_effect = lambda p, k, d: opts.get(k, d)

            admins = ['*****@*****.**']
            member_emails = ['*****@*****.**', '*****@*****.**']
            project_emails = ['*****@*****.**', '*****@*****.**']

            project = Mock()
            project.team.member_set = Mock()
            project.team.member_set.values_list.return_value = member_emails

            with self.Settings(SENTRY_ADMINS=admins):
                # member emails without admins
                p = MailProcessor()
                self.assertEqual(sorted(set(member_emails)),
                                 sorted(p.get_send_to(project)))

                # member emails with members
                p = MailProcessor()
                opts = {'mail:send_to_admins': True}
                p._send_mail('', '', project=project)
                self.assertEqual(sorted(set(member_emails + admins)),
                                 sorted(p.get_send_to(project)))

                # project emails without members
                p = MailProcessor()
                opts = {'mail:send_to': ','.join(project_emails),
                        'mail:send_to_members': False}
                p._send_mail('', '', project=project)
                self.assertEqual(sorted(set(project_emails)),
                                 sorted(p.get_send_to(project)))

                # project emails with members
                p = MailProcessor()
                opts = {'mail:send_to': ','.join(project_emails),
                        'mail:send_to_members': False,
                        'mail:send_to_admins': True}
                p._send_mail('', '', project=project)
                self.assertEqual(sorted(set(project_emails + admins)),
                                 sorted(p.get_send_to(project)))

                # project emails with members and admins
                p = MailProcessor()
                opts = {'mail:send_to': ','.join(project_emails),
                        'mail:send_to_members': True,
                        'mail:send_to_admins': True}
                p._send_mail('', '', project=project)
                self.assertEqual(sorted(set(project_emails + admins + member_emails)),
                                 sorted(p.get_send_to(project)))
Exemple #3
0
    def test_send_to(self, get_emails_for_users, get_sendable_users, get_value):
        opts = {}

        admins = ['1']
        member_emails = ['2', '3']
        project_emails = ['2', '4']

        get_value.side_effect = lambda p, k, d: opts.get(k, d)
        get_emails_for_users.side_effect = lambda x: x
        get_sendable_users.return_value = member_emails

        project = mock.Mock()
        project.id = 1
        project.pk = project.id

        with self.Settings(SENTRY_ADMINS=admins):
            p = MailProcessor()
            # member emails without admins
            self.assertEqual(sorted(set(member_emails)),
                             sorted(p.get_send_to(project)))

            # member emails with members
            opts = {'mail:send_to_admins': True}
            self.assertEqual(sorted(set(member_emails + admins)),
                             sorted(p.get_send_to(project)))

            # project emails without members
            opts = {'mail:send_to': ','.join(project_emails),
                    'mail:send_to_members': False}
            self.assertEqual(sorted(set(project_emails)),
                             sorted(p.get_send_to(project)))

            # project emails with members
            opts = {'mail:send_to': ','.join(project_emails),
                    'mail:send_to_members': False,
                    'mail:send_to_admins': True}
            self.assertEqual(sorted(set(project_emails + admins)),
                             sorted(p.get_send_to(project)))

            # project emails with members and admins
            opts = {'mail:send_to': ','.join(project_emails),
                    'mail:send_to_members': True,
                    'mail:send_to_admins': True}
            self.assertEqual(sorted(set(project_emails + admins + member_emails)),
                             sorted(p.get_send_to(project)))