]> git.ipfire.org Git - thirdparty/patchwork.git/commitdiff
tests: Make sure all emails have a valid msgid
authorDamien Lespiau <damien.lespiau@intel.com>
Thu, 5 Jun 2014 00:27:08 +0000 (01:27 +0100)
committerStephen Finucane <stephen.finucane@intel.com>
Fri, 13 Nov 2015 21:31:05 +0000 (21:31 +0000)
Messages ids will be used by the Series code as the way to uniquely
identify series. We must ensure every single email that goes through the
parser has a valid msgid to not fail once we parse series.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Stephen Finucane <stephen.finucane@intel.com>
patchwork/tests/test_patchparser.py
patchwork/tests/utils.py

index a49bf9b8d79a4bc095cf1d3cb7ac224e5fbfb241..2b8f9d2f9675582bf44ff9183664783831b7413a 100644 (file)
@@ -19,6 +19,7 @@
 
 import os
 from email import message_from_string
+from email.utils import make_msgid
 from django.test import TestCase
 from patchwork.models import Project, Person, Patch, Comment, State, \
          get_default_initial_patch_state
@@ -141,7 +142,8 @@ class SenderEncodingTest(TestCase):
     from_header = 'example user <user@example.com>'
 
     def setUp(self):
-        mail = 'From: %s\n' % self.from_header + \
+        mail = 'Message-Id: %s\n' % make_msgid() + \
+               'From: %s\n' % self.from_header + \
                'Subject: test\n\n' + \
                'test'
         self.email = message_from_string(mail)
@@ -183,7 +185,8 @@ class SubjectEncodingTest(PatchTest):
     subject_header = 'test subject'
 
     def setUp(self):
-        mail = 'From: %s\n' % self.sender + \
+        mail = 'Message-Id: %s\n' % make_msgid() + \
+               'From: %s\n' % self.sender + \
                'Subject: %s\n\n' % self.subject_header + \
                'test\n\n' + defaults.patch
         self.projects = defaults.project
@@ -206,7 +209,11 @@ class SenderCorrelationTest(TestCase):
     non_existing_sender = 'Non-existing Sender <nonexisting@example.com>'
 
     def mail(self, sender):
-        return message_from_string('From: %s\nSubject: Test\n\ntest\n' % sender)
+        mail = 'Message-Id: %s\n' % make_msgid() + \
+               'From: %s\n' % sender + \
+               'Subject: Tests\n\n'\
+               'test\n'
+        return message_from_string(mail)
 
     def setUp(self):
         self.existing_sender_mail = self.mail(self.existing_sender)
@@ -259,6 +266,7 @@ class MultipleProjectPatchTest(TestCase):
 
         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']
index 15ca3aa0b69a1aab68f3aa5f0fea78851ca642e9..4f4906b5128695dff776ad4be85bbcbe2f7d7d7c 100644 (file)
@@ -26,6 +26,8 @@ from django.forms.fields import EmailField
 from email import message_from_file
 from email.mime.text import MIMEText
 from email.mime.multipart import MIMEMultipart
+from email.utils import make_msgid
+
 
 # helper functions for tests
 _test_mail_dir  = os.path.join(os.path.dirname(__file__), 'mail')
@@ -102,6 +104,8 @@ def read_patch(filename, encoding = None):
 def read_mail(filename, project = None):
     file_path = os.path.join(_test_mail_dir, filename)
     mail = message_from_file(open(file_path))
+    if 'Message-Id' not in mail:
+        mail['Message-Id'] = make_msgid()
     if project is not None:
         mail['List-Id'] = project.listid
     return mail
@@ -125,6 +129,7 @@ def create_email(content, subject = None, sender = None, multipart = False,
     else:
         msg = MIMEText(content, _charset = content_encoding)
 
+    msg['Message-Id'] = make_msgid()
     msg['Subject'] = subject
     msg['From'] = sender
     msg['List-Id'] = project.listid