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)))
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)))
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)))