X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=apps%2Fpatchwork%2Ftests%2Fpatchparser.py;h=6fe7968bfafa32aa12eef70c26412f72ceb21e70;hb=918fab011f24f22f9915674c104258e20a5fcf26;hp=2e207bf7e9ec781a1ebb88f3b2b99146e86d503f;hpb=5787cddc0bde4514cba96a360f89841e13d2e506;p=patchwork diff --git a/apps/patchwork/tests/patchparser.py b/apps/patchwork/tests/patchparser.py index 2e207bf..6fe7968 100644 --- a/apps/patchwork/tests/patchparser.py +++ b/apps/patchwork/tests/patchparser.py @@ -21,7 +21,8 @@ import unittest import os from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart -from patchwork.models import Project +from email import message_from_string +from patchwork.models import Project, Person test_mail_dir = 'patchwork/tests/mail' test_patch_dir = 'patchwork/tests/patches' @@ -55,7 +56,7 @@ class PatchTest(unittest.TestCase): return file(os.path.join(test_patch_dir, filename)).read() -from patchwork.bin.parsemail import find_content +from patchwork.bin.parsemail import find_content, find_author class InlinePatchTest(PatchTest): patch_filename = '0001-add-line.patch' @@ -126,3 +127,45 @@ class UpdateSigCommentTest(SignatureCommentTest): """ Test for '---\nUpdate: v2' style comments to patches, with a sig """ patch_filename = '0001-add-line.patch' test_comment = 'Test comment\nmore comment\n---\nUpdate: test update' + +class SenderEncodingTest(unittest.TestCase): + sender_name = u'example user' + sender_email = 'user@example.com' + from_header = 'example user ' + + def setUp(self): + mail = 'From: %s\n' % self.from_header + \ + 'Subject: test\n\n' + \ + 'test' + self.email = message_from_string(mail) + (self.person, new) = find_author(self.email) + self.person.save() + + def tearDown(self): + self.person.delete() + + def testName(self): + self.assertEquals(self.person.name, self.sender_name) + + def testEmail(self): + self.assertEquals(self.person.email, self.sender_email) + + def testDBQueryName(self): + db_person = Person.objects.get(name = self.sender_name) + self.assertEquals(self.person, db_person) + + def testDBQueryEmail(self): + db_person = Person.objects.get(email = self.sender_email) + self.assertEquals(self.person, db_person) + + +class SenderUTF8QPEncodingTest(SenderEncodingTest): + sender_name = u'\xe9xample user' + from_header = '=?utf-8?q?=C3=A9xample=20user?= ' + +class SenderUTF8QPSplitEncodingTest(SenderEncodingTest): + sender_name = u'\xe9xample user' + from_header = '=?utf-8?q?=C3=A9xample=20?= user ' + +class SenderUTF8B64EncodingTest(SenderUTF8QPEncodingTest): + from_header = '=?utf-8?B?w6l4YW1wbGUgdXNlcg==?= '