]> git.ozlabs.org Git - patchwork/blobdiff - apps/patchwork/tests/patchparser.py
tests/parser: Add subject encoding tests
[patchwork] / apps / patchwork / tests / patchparser.py
index f6909ce9e458608300f060b09a3c9d316267ebb3..1135a0a57b9f9b795d2d882b76e5bdb89cf5cae6 100644 (file)
@@ -21,7 +21,7 @@ import unittest
 import os
 from email import message_from_string
 from patchwork.models import Project, Person, Patch, Comment
-from patchwork.tests.utils import read_patch, create_email, defaults
+from patchwork.tests.utils import read_patch, read_mail, create_email, defaults
 
 try:
     from email.mime.text import MIMEText
@@ -173,6 +173,29 @@ class SenderUTF8QPSplitEncodingTest(SenderEncodingTest):
 class SenderUTF8B64EncodingTest(SenderUTF8QPEncodingTest):
     from_header = '=?utf-8?B?w6l4YW1wbGUgdXNlcg==?= <user@example.com>'
 
+class SubjectEncodingTest(PatchTest):
+    sender = 'example user <user@example.com>'
+    subject = 'test subject'
+    subject_header = 'test subject'
+
+    def setUp(self):
+        mail = 'From: %s\n' % self.sender + \
+               'Subject: %s\n\n' % self.subject_header + \
+               'test\n\n' + defaults.patch
+        self.projects = defaults.project
+        self.email = message_from_string(mail)
+
+    def testSubjectEncoding(self):
+        (patch, comment) = find_content(self.project, self.email)
+        self.assertEquals(patch.name, self.subject)
+
+class SubjectUTF8QPEncodingTest(SubjectEncodingTest):
+    subject = u'test s\xfcbject'
+    subject_header = '=?utf-8?q?test=20s=c3=bcbject?='
+
+class SubjectUTF8QPMultipleEncodingTest(SubjectEncodingTest):
+    subject = u'test s\xfcbject'
+    subject_header = 'test =?utf-8?q?s=c3=bcbject?='
 
 class SenderCorrelationTest(unittest.TestCase):
     existing_sender = 'Existing Sender <existing@example.com>'
@@ -322,3 +345,14 @@ class ListIdHeaderTest(unittest.TestCase):
 
     def tearDown(self):
         self.project.delete()
+
+
+class GitPullTest(PatchTest):
+    def testGitPullRequest(self):
+        mail = read_mail('0001-git-pull-request.mbox',
+                        project = self.project)
+        (patch, comment) = find_content(self.project, mail)
+        self.assertTrue(patch is not None)
+        self.assertTrue(patch.pull_url is not None)
+        self.assertTrue(patch.content is None)
+        self.assertTrue(comment is not None)