예제 #1
0
    def testParseEmailMessage(self):
        msg = testing_helpers.MakeMessage(testing_helpers.HEADER_LINES,
                                          'awesome!')

        (from_addr, to_addrs, cc_addrs, references, incident_id, subject,
         body) = emailfmt.ParseEmailMessage(msg)

        self.assertEqual('*****@*****.**', from_addr)
        self.assertEqual(['*****@*****.**'], to_addrs)
        self.assertEqual(['*****@*****.**'], cc_addrs)
        # Expected msg-id was generated from a previous known-good test run.
        self.assertEqual([
            '<0=969704940193871313=13442892928193434663='
            '*****@*****.**>'
        ], references)
        self.assertEqual('', incident_id)
        self.assertEqual('Issue 123 in proj: broken link', subject)
        self.assertEqual('awesome!', body)

        references_header = ('References', '<*****@*****.**> <*****@*****.**>')
        msg = testing_helpers.MakeMessage(
            testing_helpers.HEADER_LINES + [references_header], 'awesome!')
        (from_addr, to_addrs, cc_addrs, references, incident_id, subject,
         body) = emailfmt.ParseEmailMessage(msg)
        self.assertItemsEqual([
            '<*****@*****.**>', '<0=969704940193871313=13442892928193434663='
            '*****@*****.**>', '<*****@*****.**>'
        ], references)
예제 #2
0
    def setUp(self):
        self.cnxn = 'fake cnxn'
        self.services = service_manager.Services(
            config=fake.ConfigService(),
            issue=fake.IssueService(),
            user=fake.UserService(),
            usergroup=fake.UserGroupService(),
            project=fake.ProjectService())
        self.project = self.services.project.TestAddProject(
            'proj',
            project_id=987,
            process_inbound_email=True,
            contrib_ids=[111])
        self.project_addr = '*****@*****.**'

        self.issue = tracker_pb2.Issue()
        self.issue.project_id = 987
        self.issue.local_id = 100
        self.services.issue.TestAddIssue(self.issue)

        self.msg = testing_helpers.MakeMessage(testing_helpers.HEADER_LINES,
                                               'awesome!')

        request, _ = testing_helpers.GetRequestObjects()
        self.inbound = inboundemail.InboundEmail(request, None, self.services)
        self.mox = mox.Mox()
예제 #3
0
    def testParseEmailMessage_Bulk(self):
        for precedence in ['Bulk', 'Junk']:
            msg = testing_helpers.MakeMessage(
                testing_helpers.HEADER_LINES + [('Precedence', precedence)],
                'I am on vacation!')

            (from_addr, to_addrs, cc_addrs, references, incident_id, subject,
             body) = emailfmt.ParseEmailMessage(msg)

            self.assertEqual('', from_addr)
            self.assertEqual([], to_addrs)
            self.assertEqual([], cc_addrs)
            self.assertEqual('', references)
            self.assertEqual('', incident_id)
            self.assertEqual('', subject)
            self.assertEqual('', body)
예제 #4
0
class TestData(object):
    """Contains constants or such objects that are intended to be read-only."""
    cnxn = 'fake cnxn'
    test_issue_local_id = 100
    component_id = 123
    trooper_queue = 'my-trooper-bug-queue'

    project_name = 'proj'
    project_addr = '*****@*****.**' % (project_name,
                                                         trooper_queue)
    project_id = 987

    from_addr = '*****@*****.**'
    user_id = 111

    msg_body = 'this is the body'
    msg_subject = 'this is the subject'
    msg = testing_helpers.MakeMessage(testing_helpers.ALERT_EMAIL_HEADER_LINES,
                                      msg_body)

    incident_id = msg.get(AlertEmailHeader.INCIDENT_ID)
    incident_label = alert2issue._GetIncidentLabel(incident_id)

    # All the tests in this class use the following alert properties, and
    # the generator functions/logic should be tested in a separate class.
    alert_props = {
        'owner_id': None,
        'cc_ids': [],
        'status': 'Available',
        'incident_label': incident_label,
        'priority': 'Pri-0',
        'trooper_queue': trooper_queue,
        'field_values': [],
        'labels':
        ['Restrict-View-Google', 'Pri-0', incident_label, trooper_queue],
        'component_ids': [component_id],
    }