Beispiel #1
0
class InitialPatchStateTest(TestCase):
    fixtures = ['default_states']
    patch_filename = '0001-add-line.patch'
    msgid = '<*****@*****.**>'
    invalid_state_name = "Nonexistent Test State"

    def setUp(self):
        self.patch = read_patch(self.patch_filename)
        self.user = create_user()
        self.p1 = Project(linkname='test-project-1', name='Project 1',
                          listid='1.example.com', listemail='*****@*****.**')
        self.p1.save()
        self.default_state = get_default_initial_patch_state()
        self.nondefault_state = State.objects.get(name="Accepted")

    def get_email(self):
        email = create_email(self.patch)
        del email['List-ID']
        email['List-ID'] = '<' + self.p1.listid + '>'
        email['Message-Id'] = self.msgid
        return email

    def _assertState(self, state):
        query = Patch.objects.filter(project=self.p1)
        self.assertEqual(query.count(), 1)
        self.assertEqual(query[0].state, state)

    def testNonDefaultStateIsActuallyNotTheDefaultState(self):
        self.assertNotEqual(self.default_state, self.nondefault_state)

    def testExplicitNonDefaultStateRequest(self):
        email = self.get_email()
        email['X-Patchwork-State'] = self.nondefault_state.name
        parse_mail(email)
        self._assertState(self.nondefault_state)

    def testExplicitDefaultStateRequest(self):
        email = self.get_email()
        email['X-Patchwork-State'] = self.default_state.name
        parse_mail(email)
        self._assertState(self.default_state)

    def testImplicitDefaultStateRequest(self):
        email = self.get_email()
        parse_mail(email)
        self._assertState(self.default_state)

    def testInvalidTestStateDoesNotExist(self):
        with self.assertRaises(State.DoesNotExist):
            State.objects.get(name=self.invalid_state_name)

    def testInvalidStateRequestFallsBackToDefaultState(self):
        email = self.get_email()
        email['X-Patchwork-State'] = self.invalid_state_name
        parse_mail(email)
        self._assertState(self.default_state)

    def tearDown(self):
        self.p1.delete()
        self.user.delete()
Beispiel #2
0
    def setUp(self):
        self.p = Project(linkname='test-project-1',
                         name='Project 1',
                         listid='1.example.com',
                         listemail='*****@*****.**')

        self.p.save()

        patch = read_patch(self.patch_filename)
        patch1 = create_email(self.test_comment + '\n' + patch,
                              subject="[PATCH 1/2] Meep Meep]")

        patch2 = create_email(self.test_comment + '\n' + patch,
                              subject="[PATCH 2/2] Meep Meep2]",
                              in_reply_to=patch1['Message-Id'])

        self.patch_update = create_email(self.test_comment + '\n' + patch,
                                         subject="[PATCH v2] Meep Meep2",
                                         in_reply_to=patch2['Message-Id'])

        self.comment = create_email(self.test_comment,
                                    subject="Re: [PATCH] Meep Meep2",
                                    in_reply_to=patch2['Message-Id'])

        for email in [patch1, patch2, self.patch_update, self.comment]:
            del email['List-ID']
            email['List-ID'] = '<' + self.p.listid + '>'

        parse_mail(patch1)
        parse_mail(patch2)
Beispiel #3
0
    def setUp(self):
        self.p1 = Project(linkname='test-project-1',
                          name='Project 1',
                          listid='1.example.com',
                          listemail='*****@*****.**')
        self.p2 = Project(linkname='test-project-2',
                          name='Project 2',
                          listid='2.example.com',
                          listemail='*****@*****.**')

        self.p1.save()
        self.p2.save()

        patch = read_patch(self.patch_filename)
        email = create_email(self.test_comment + '\n' + patch)
        del email['Message-Id']
        email['Message-Id'] = self.msgid

        del email['List-ID']
        email['List-ID'] = '<' + self.p1.listid + '>'
        parse_mail(email)

        del email['List-ID']
        email['List-ID'] = '<' + self.p2.listid + '>'
        parse_mail(email)
Beispiel #4
0
class MailFromPatchTest(TestCase):
    fixtures = ['default_states', 'default_events']
    patch_filename = '0001-add-line.patch'
    msgid = '<*****@*****.**>'

    def get_email(self, multipart=False):
        if multipart:
            email = create_email('See attached patch!', multipart=multipart)
            attachment = MIMEText(self.patch, _subtype='x-patch')
            email.attach(attachment)
        else:
            email = create_email(self.patch)
        del email['List-ID']
        email['List-ID'] = '<' + self.p1.listid + '>'
        email['Message-Id'] = self.msgid
        return email

    def setUp(self):
        self.patch = read_patch(self.patch_filename)
        self.user = create_user()
        self.p1 = Project(linkname='test-project-1', name='Project 1',
                          listid='1.example.com', listemail='*****@*****.**')
        self.p1.save()

    def tearDown(self):
        self.p1.delete()
        self.user.delete()
Beispiel #5
0
class GitPullEventTest(PatchTest):
    def setUp(self):
        self.mail = read_mail('0001-git-pull-request.mbox',
                              project=self.project)
        self.p1 = Project(linkname='oss-dev',
                          name='OSS Dev',
                          listid='cbe-oss-dev.ozlabs.org',
                          listemail='cbe-oss-dev.ozlabs.org')
        self.p1.save()

    def testGitPullRequest(self):
        self.assertEqual(parse_mail(self.mail), 0)
        self.patch = Patch.objects.filter(project=self.p1)[0]

        self.assertTrue(self.patch.pull_url is not None)

        events = EventLog.objects.filter(patch=self.patch)
        self.assertEqual(len(events), 1)

        el = events[0]
        self.assertEqual(Event.objects.get(name='pull-request-new'), el.event)
        self.assertEqual(self.patch.pull_url, el.parameters['pull_url'])

    def tearDown(self):
        self.p1.delete()
        if self.patch:
            self.patch.delete()
 def setUp(self):
     self.project1 = Project(linkname='test-project-1', name='Project 1',
             listid='list.example.com', listemail='*****@*****.**')
     self.project1.save()
     self.project2 = Project(linkname='test-project-2', name='Project 2',
             listid='list.example.com', listemail='*****@*****.**')
     self.project2.save()
Beispiel #7
0
 def setUp(self):
     self.mail = read_mail('0001-git-pull-request.mbox',
                           project=self.project)
     self.p1 = Project(linkname='oss-dev',
                       name='OSS Dev',
                       listid='cbe-oss-dev.ozlabs.org',
                       listemail='cbe-oss-dev.ozlabs.org')
     self.p1.save()
Beispiel #8
0
 def setUp(self):
     self.patch = read_patch(self.patch_filename)
     self.user = create_user()
     self.p1 = Project(linkname='test-project-1',
                       name='Project 1',
                       listid='1.example.com',
                       listemail='*****@*****.**')
     self.p1.save()
Beispiel #9
0
 def setUp(self):
     self.project1 = Project(linkname='test-project-1', name='Project 1',
                             listid='list.example.com',
                             listemail='*****@*****.**')
     self.project1.save()
     self.project2 = Project(linkname='test-project-2', name='Project 2',
                             listid='list.example.com',
                             listemail='*****@*****.**')
     self.project2.save()
Beispiel #10
0
    def test_get_numeric_linkname(self):
        """Validate we try to do the right thing for numeric linkname"""
        project = Project(linkname='12345', name='Test Project',
                          listid='test.example.com')
        project.save()

        resp = self.client.get(self.api_url('12345'))
        self.assertEqual(status.HTTP_200_OK, resp.status_code)
        self.assertEqual(project.name, resp.data['name'])
Beispiel #11
0
 def setUp(self):
     project = Project(linkname='test-project', name='Test Project',
                       use_tags=True)
     project.save()
     defaults.patch_author_person.save()
     self.patch = Patch(project=project,
                        msgid='x', name=defaults.patch_name,
                        submitter=defaults.patch_author_person,
                        content='')
     self.patch.save()
     self.tagger = 'Test Tagger <*****@*****.**>'
Beispiel #12
0
 def setUp(self):
     project = Project(linkname='test-project', name='Test Project',
                       use_tags=True)
     project.save()
     defaults.patch_author_person.save()
     self.patch = Patch(project=project,
                        msgid='x', name=defaults.patch_name,
                        submitter=defaults.patch_author_person,
                        content='')
     self.patch.save()
     self.tagger = 'Test Tagger <*****@*****.**>'
Beispiel #13
0
class ListIdHeaderTest(TestCase):

    """Test that we parse List-Id headers from mails correctly."""

    def setUp(self):
        self.project = Project(linkname='test-project-1', name='Project 1',
                               listid='1.example.com',
                               listemail='*****@*****.**')
        self.project.save()

    def testNoListId(self):
        email = MIMEText('')
        project = find_project(email)
        self.assertEqual(project, None)

    def testBlankListId(self):
        email = MIMEText('')
        email['List-Id'] = ''
        project = find_project(email)
        self.assertEqual(project, None)

    def testWhitespaceListId(self):
        email = MIMEText('')
        email['List-Id'] = ' '
        project = find_project(email)
        self.assertEqual(project, None)

    def testSubstringListId(self):
        email = MIMEText('')
        email['List-Id'] = 'example.com'
        project = find_project(email)
        self.assertEqual(project, None)

    def testShortListId(self):
        """ Some mailing lists have List-Id headers in short formats, where it
            is only the list ID itself (without enclosing angle-brackets). """
        email = MIMEText('')
        email['List-Id'] = self.project.listid
        project = find_project(email)
        self.assertEqual(project, self.project)

    def testLongListId(self):
        email = MIMEText('')
        email['List-Id'] = 'Test text <%s>' % self.project.listid
        project = find_project(email)
        self.assertEqual(project, self.project)

    def tearDown(self):
        self.project.delete()
Beispiel #14
0
def create_project(**kwargs):
    """Create a 'Project' object."""
    num = Project.objects.count()

    values = {
        'linkname': 'test-project-%d' % num,
        'name': 'Test Project %d' % num,
        'listid': 'test%d.example.com' % num,
    }
    values.update(kwargs)

    project = Project(**values)
    project.save()

    return project
Beispiel #15
0
class ListIdHeaderTest(unittest.TestCase):
    """ Test that we parse List-Id headers from mails correctly """

    def setUp(self):
        self.project = Project(
            linkname="test-project-1", name="Project 1", listid="1.example.com", listemail="*****@*****.**"
        )
        self.project.save()

    def testNoListId(self):
        email = MIMEText("")
        project = find_project(email)
        self.assertEquals(project, None)

    def testBlankListId(self):
        email = MIMEText("")
        email["List-Id"] = ""
        project = find_project(email)
        self.assertEquals(project, None)

    def testWhitespaceListId(self):
        email = MIMEText("")
        email["List-Id"] = " "
        project = find_project(email)
        self.assertEquals(project, None)

    def testSubstringListId(self):
        email = MIMEText("")
        email["List-Id"] = "example.com"
        project = find_project(email)
        self.assertEquals(project, None)

    def testShortListId(self):
        """ Some mailing lists have List-Id headers in short formats, where it
            is only the list ID itself (without enclosing angle-brackets). """
        email = MIMEText("")
        email["List-Id"] = self.project.listid
        project = find_project(email)
        self.assertEquals(project, self.project)

    def testLongListId(self):
        email = MIMEText("")
        email["List-Id"] = "Test text <%s>" % self.project.listid
        project = find_project(email)
        self.assertEquals(project, self.project)

    def tearDown(self):
        self.project.delete()
Beispiel #16
0
class defaults(object):
    project = Project(linkname='test-project', name='Test Project',
                      listid='test.example.com')

    patch_author = 'Patch Author <*****@*****.**>'
    patch_author_person = Person(name='Patch Author',
                                 email='*****@*****.**')

    comment_author = 'Comment Author <*****@*****.**>'

    sender = 'Test Author <*****@*****.**>'

    subject = 'Test Subject'

    series_name = 'Test Series'

    series_cover_letter = """This is the test series cover letter.
I hope you'll like it."""

    patch_name = 'Test Patch'

    patch = """--- /dev/null	2011-01-01 00:00:00.000000000 +0800
+++ a	2011-01-01 00:00:00.000000000 +0800
@@ -0,0 +1 @@
+a
"""

    review = """This is a great addition!"""
Beispiel #17
0
class DelegateRequestTest(TestCase):
    fixtures = ['default_states', 'default_events']
    patch_filename = '0001-add-line.patch'
    msgid = '<*****@*****.**>'
    invalid_delegate_email = "nobody"

    def setUp(self):
        self.patch = read_patch(self.patch_filename)
        self.user = create_user()
        self.p1 = Project(linkname='test-project-1',
                          name='Project 1',
                          listid='1.example.com',
                          listemail='*****@*****.**')
        self.p1.save()

    def get_email(self):
        email = create_email(self.patch)
        del email['List-ID']
        email['List-ID'] = '<' + self.p1.listid + '>'
        email['Message-Id'] = self.msgid
        return email

    def _assertDelegate(self, delegate):
        query = Patch.objects.filter(project=self.p1)
        self.assertEquals(query.count(), 1)
        self.assertEquals(query[0].delegate, delegate)

    def testDelegate(self):
        email = self.get_email()
        email['X-Patchwork-Delegate'] = self.user.email
        parse_mail(email)
        self._assertDelegate(self.user)

    def testNoDelegate(self):
        email = self.get_email()
        parse_mail(email)
        self._assertDelegate(None)

    def testInvalidDelegateFallsBackToNoDelegate(self):
        email = self.get_email()
        email['X-Patchwork-Delegate'] = self.invalid_delegate_email
        parse_mail(email)
        self._assertDelegate(None)

    def tearDown(self):
        self.p1.delete()
        self.user.delete()
Beispiel #18
0
 def setUp(self):
     self.patch = read_patch(self.patch_filename)
     self.user = create_user()
     self.p1 = Project(linkname = 'test-project-1', name = 'Project 1',
             listid = '1.example.com', listemail='*****@*****.**')
     self.p1.save()
     self.default_state = get_default_initial_patch_state()
     self.nondefault_state = State.objects.get(name="Accepted")
Beispiel #19
0
class DelegateRequestTest(TestCase):
    fixtures = ['default_states', 'default_events']
    patch_filename = '0001-add-line.patch'
    msgid = '<*****@*****.**>'
    invalid_delegate_email = "nobody"

    def setUp(self):
        self.patch = read_patch(self.patch_filename)
        self.user = create_user()
        self.p1 = Project(linkname='test-project-1', name='Project 1',
                          listid='1.example.com', listemail='*****@*****.**')
        self.p1.save()

    def get_email(self):
        email = create_email(self.patch)
        del email['List-ID']
        email['List-ID'] = '<' + self.p1.listid + '>'
        email['Message-Id'] = self.msgid
        return email

    def _assertDelegate(self, delegate):
        query = Patch.objects.filter(project=self.p1)
        self.assertEqual(query.count(), 1)
        self.assertEqual(query[0].delegate, delegate)

    def testDelegate(self):
        email = self.get_email()
        email['X-Patchwork-Delegate'] = self.user.email
        parse_mail(email)
        self._assertDelegate(self.user)

    def testNoDelegate(self):
        email = self.get_email()
        parse_mail(email)
        self._assertDelegate(None)

    def testInvalidDelegateFallsBackToNoDelegate(self):
        email = self.get_email()
        email['X-Patchwork-Delegate'] = self.invalid_delegate_email
        parse_mail(email)
        self._assertDelegate(None)

    def tearDown(self):
        self.p1.delete()
        self.user.delete()
Beispiel #20
0
    def setUp(self):
        self.p1 = Project(linkname = 'test-project-1', name = 'Project 1',
                listid = '1.example.com', listemail='*****@*****.**')
        self.p2 = Project(linkname = 'test-project-2', name = 'Project 2',
                listid = '2.example.com', listemail='*****@*****.**')

        self.p1.save()
        self.p2.save()

        patch = read_patch(self.patch_filename)
        email = create_email(self.test_comment + '\n' + patch)
        email['Message-Id'] = self.msgid

        del email['List-ID']
        email['List-ID'] = '<' + self.p1.listid + '>'
        parse_mail(email)

        del email['List-ID']
        email['List-ID'] = '<' + self.p2.listid + '>'
        parse_mail(email)
Beispiel #21
0
    def setUp(self):
        self.p1 = Project(
            linkname="test-project-1", name="Project 1", listid="1.example.com", listemail="*****@*****.**"
        )
        self.p2 = Project(
            linkname="test-project-2", name="Project 2", listid="2.example.com", listemail="*****@*****.**"
        )

        self.p1.save()
        self.p2.save()

        patch = read_patch(self.patch_filename)
        email = create_email(self.test_comment + "\n" + patch)
        email["Message-Id"] = self.msgid

        del email["List-ID"]
        email["List-ID"] = "<" + self.p1.listid + ">"
        parse_mail(email)

        del email["List-ID"]
        email["List-ID"] = "<" + self.p2.listid + ">"
        parse_mail(email)
Beispiel #22
0
class MultipleProjectPatchTest(TestCase):
    """ Test that patches sent to multiple patchwork projects are
        handled correctly """

    fixtures = ['default_states', 'default_events']
    test_comment = 'Test Comment'
    patch_filename = '0001-add-line.patch'
    msgid = '<*****@*****.**>'

    def setUp(self):
        self.p1 = Project(linkname='test-project-1',
                          name='Project 1',
                          listid='1.example.com',
                          listemail='*****@*****.**')
        self.p2 = Project(linkname='test-project-2',
                          name='Project 2',
                          listid='2.example.com',
                          listemail='*****@*****.**')

        self.p1.save()
        self.p2.save()

        patch = read_patch(self.patch_filename)
        email = create_email(self.test_comment + '\n' + patch)
        del email['Message-Id']
        email['Message-Id'] = self.msgid

        del email['List-ID']
        email['List-ID'] = '<' + self.p1.listid + '>'
        parse_mail(email)

        del email['List-ID']
        email['List-ID'] = '<' + self.p2.listid + '>'
        parse_mail(email)

    def testParsedProjects(self):
        self.assertEquals(Patch.objects.filter(project=self.p1).count(), 1)
        self.assertEquals(Patch.objects.filter(project=self.p2).count(), 1)

    def tearDown(self):
        self.p1.delete()
        self.p2.delete()
Beispiel #23
0
class MultipleProjectPatchTest(TestCase):

    """ Test that patches sent to multiple patchwork projects are
        handled correctly """

    fixtures = ['default_states']
    test_content = 'Test Comment'
    patch_filename = '0001-add-line.patch'
    msgid = '<*****@*****.**>'

    def setUp(self):
        self.p1 = Project(linkname='test-project-1', name='Project 1',
                          listid='1.example.com', listemail='*****@*****.**')
        self.p2 = Project(linkname='test-project-2', name='Project 2',
                          listid='2.example.com', listemail='*****@*****.**')

        self.p1.save()
        self.p2.save()

        patch = read_patch(self.patch_filename)
        email = create_email(self.test_content + '\n' + patch)
        del email['Message-Id']
        email['Message-Id'] = self.msgid

        del email['List-ID']
        email['List-ID'] = '<' + self.p1.listid + '>'
        parse_mail(email)

        del email['List-ID']
        email['List-ID'] = '<' + self.p2.listid + '>'
        parse_mail(email)

    def testParsedProjects(self):
        self.assertEqual(Patch.objects.filter(project=self.p1).count(), 1)
        self.assertEqual(Patch.objects.filter(project=self.p2).count(), 1)

    def tearDown(self):
        self.p1.delete()
        self.p2.delete()
Beispiel #24
0
class MultipleProjectPatchTest(unittest.TestCase):
    """ Test that patches sent to multiple patchwork projects are
        handled correctly """

    test_comment = "Test Comment"
    patch_filename = "0001-add-line.patch"
    msgid = "<*****@*****.**>"

    def setUp(self):
        self.p1 = Project(
            linkname="test-project-1", name="Project 1", listid="1.example.com", listemail="*****@*****.**"
        )
        self.p2 = Project(
            linkname="test-project-2", name="Project 2", listid="2.example.com", listemail="*****@*****.**"
        )

        self.p1.save()
        self.p2.save()

        patch = read_patch(self.patch_filename)
        email = create_email(self.test_comment + "\n" + patch)
        email["Message-Id"] = self.msgid

        del email["List-ID"]
        email["List-ID"] = "<" + self.p1.listid + ">"
        parse_mail(email)

        del email["List-ID"]
        email["List-ID"] = "<" + self.p2.listid + ">"
        parse_mail(email)

    def testParsedProjects(self):
        self.assertEquals(Patch.objects.filter(project=self.p1).count(), 1)
        self.assertEquals(Patch.objects.filter(project=self.p2).count(), 1)

    def tearDown(self):
        self.p1.delete()
        self.p2.delete()
Beispiel #25
0
 def setUp(self):
     self.project = Project(
         linkname="test-project-1", name="Project 1", listid="1.example.com", listemail="*****@*****.**"
     )
     self.project.save()
Beispiel #26
0
class MultipleProjectsPerMailingListTest(TestCase):
    """Do we handle hosting multiple projects on the same mailing-list?"""
    fixtures = ['default_states', 'default_events']

    def setUp(self):
        self.project1 = Project(linkname='test-project-1', name='Project 1',
                                listid='list.example.com',
                                listemail='*****@*****.**')
        self.project1.save()
        self.project2 = Project(linkname='test-project-2', name='Project 2',
                                listid='list.example.com',
                                listemail='*****@*****.**')
        self.project2.save()

    def testTagList(self):
        self.project1.subject_prefix_tags = ''
        self.assertEquals(self.project1.get_subject_prefix_tags(), [])

        self.project1.subject_prefix_tags = ' '
        self.assertEquals(self.project1.get_subject_prefix_tags(), [])

        self.project1.subject_prefix_tags = 'i-g-t'
        self.assertEquals(self.project1.get_subject_prefix_tags(), ['i-g-t'])

        self.project1.subject_prefix_tags = 'a,b'
        self.assertEquals(self.project1.get_subject_prefix_tags(), ['a', 'b'])

        self.project1.subject_prefix_tags = 'a, ,b,'
        self.assertEquals(self.project1.get_subject_prefix_tags(), ['a', 'b'])

    def testSingleTag(self):
        self.project2.subject_prefix_tags = 'i-g-t'
        self.project2.save()

        email = create_email(defaults.patch, project=self.project1,
                             subject='[PATCH] Subject')
        self.assertEquals(find_project(email), self.project1)
        email = create_email(defaults.patch, project=self.project1,
                             subject='[PATCH i-g-t] Subject')
        self.assertEquals(find_project(email), self.project2)

    def testSingleTagInverted(self):
        """To test the order_by()"""
        self.project1.subject_prefix_tags = 'i-g-t'
        self.project1.save()
        self.project2.subject_prefix_tags = ' '
        self.project2.save()

        email = create_email(defaults.patch, project=self.project1,
                             subject='[PATCH i-g-t] Subject')
        self.assertEquals(find_project(email), self.project1)
        email = create_email(defaults.patch, project=self.project1,
                             subject='[PATCH] Subject')
        self.assertEquals(find_project(email), self.project2)

    def testMultipleTags(self):
        self.project2.subject_prefix_tags = 'i-g-t,intel-gpu-tools'
        self.project2.save()

        email = create_email(defaults.patch, project=self.project1,
                             subject='[PATCH] Subject')
        self.assertEquals(find_project(email), self.project1)
        email = create_email(defaults.patch, project=self.project1,
                             subject='[PATCH i-g-t] Subject')
        self.assertEquals(find_project(email), self.project2)
        email = create_email(defaults.patch, project=self.project1,
                             subject='[PATCH intel-gpu-tools] Subject')
        self.assertEquals(find_project(email), self.project2)

    def testStripTag(self):
        self.project2.subject_prefix_tags = 'i-g-t'
        self.project2.save()
        email = create_email(defaults.patch, project=self.project1,
                             subject='[PATCH i-g-t] Subject')
        parse_mail(email)
        patch = Patch.objects.all()[0]
        self.assertEquals(patch.name, 'Subject')
Beispiel #27
0
 def setUp(self):
     self.project = Project(linkname='test-project-1', name='Project 1',
                            listid='1.example.com',
                            listemail='*****@*****.**')
     self.project.save()
Beispiel #28
0
class ReplyPatchTest(TestCase):
    """ Test that replies to patches are handed correctly """

    fixtures = ['default_states', 'default_events']
    test_comment = 'Test Comment'
    patch_filename = '0001-add-line.patch'

    def setUp(self):
        self.p = Project(linkname='test-project-1',
                         name='Project 1',
                         listid='1.example.com',
                         listemail='*****@*****.**')

        self.p.save()

        patch = read_patch(self.patch_filename)
        patch1 = create_email(self.test_comment + '\n' + patch,
                              subject="[PATCH 1/2] Meep Meep]")

        patch2 = create_email(self.test_comment + '\n' + patch,
                              subject="[PATCH 2/2] Meep Meep2]",
                              in_reply_to=patch1['Message-Id'])

        self.patch_update = create_email(self.test_comment + '\n' + patch,
                                         subject="[PATCH v2] Meep Meep2",
                                         in_reply_to=patch2['Message-Id'])

        self.comment = create_email(self.test_comment,
                                    subject="Re: [PATCH] Meep Meep2",
                                    in_reply_to=patch2['Message-Id'])

        for email in [patch1, patch2, self.patch_update, self.comment]:
            del email['List-ID']
            email['List-ID'] = '<' + self.p.listid + '>'

        parse_mail(patch1)
        parse_mail(patch2)

    def testPatchUpdateShouldCreateNewRevision(self):
        revisions_num = SeriesRevision.objects.count()

        parse_mail(self.patch_update)

        self.assertEqual(revisions_num + 1, SeriesRevision.objects.count())

    def testHintedCommentShouldNOTCreateNewRevision(self):
        revisions_num = SeriesRevision.objects.count()

        self.patch_update['X-Patchwork-Hint'] = 'comment'
        parse_mail(self.patch_update)

        self.assertEqual(revisions_num, SeriesRevision.objects.count())

    def testNormalCommentShouldNOTCreateNewRevision(self):
        revisions_num = SeriesRevision.objects.count()

        parse_mail(self.comment)

        self.assertEqual(revisions_num, SeriesRevision.objects.count())

    def tearDown(self):
        self.p.delete()
Beispiel #29
0
 def setUp(self):
     self.patch = read_patch(self.patch_filename)
     self.user = create_user()
     self.p1 = Project(linkname='test-project-1', name='Project 1',
                       listid='1.example.com', listemail='*****@*****.**')
     self.p1.save()
class IntelGfxTest(SeriesTest):
    project = Project(linkname='intel-gfx',
                      name='Intel Gfx',
                      listid='intel-gfx.lists.freedesktop.org',
                      listemail='*****@*****.**')