from patchwork.tests.utils import read_patch, read_mail, create_email, \
defaults, create_user
-try:
- from email.mime.text import MIMEText
-except ImportError:
- # Python 2.4 compatibility
- from email.MIMEText import MIMEText
+from email.mime.text import MIMEText
class PatchTest(TestCase):
+ fixtures = ['default_states']
default_sender = defaults.sender
default_subject = defaults.subject
project = defaults.project
from patchwork.bin.parsemail import find_content, find_author, find_project, \
- parse_mail
+ parse_mail, split_prefixes, clean_subject
class InlinePatchTest(PatchTest):
patch_filename = '0001-add-line.patch'
""" Test that patches sent to multiple patchwork projects are
handled correctly """
+ fixtures = ['default_states']
test_comment = 'Test Comment'
patch_filename = '0001-add-line.patch'
msgid = '<1@example.com>'
self.assertEqual(2, patch.content.count('\ No newline at end of file'))
class DelegateRequestTest(TestCase):
+ fixtures = ['default_states']
patch_filename = '0001-add-line.patch'
msgid = '<1@example.com>'
invalid_delegate_email = "nobody"
self.user.delete()
class InitialPatchStateTest(TestCase):
+ fixtures = ['default_states']
patch_filename = '0001-add-line.patch'
msgid = '<1@example.com>'
invalid_state_name = "Nonexistent Test State"
test_comment = ('test comment\n\n' +
'Tested-by: Test User <test@example.com>\n' +
'Reviewed-by: Test User <test@example.com>\n')
- fixtures = ['default_tags']
+ fixtures = ['default_tags', 'default_states']
def setUp(self):
project = defaults.project
tag__name='Reviewed-by').count, 1)
self.assertEquals(patch.patchtag_set.get(
tag__name='Tested-by').count, 1)
+
+class PrefixTest(TestCase):
+
+ def testSplitPrefixes(self):
+ self.assertEquals(split_prefixes('PATCH'), ['PATCH'])
+ self.assertEquals(split_prefixes('PATCH,RFC'), ['PATCH', 'RFC'])
+ self.assertEquals(split_prefixes(''), [])
+ self.assertEquals(split_prefixes('PATCH,'), ['PATCH'])
+ self.assertEquals(split_prefixes('PATCH '), ['PATCH'])
+ self.assertEquals(split_prefixes('PATCH,RFC'), ['PATCH', 'RFC'])
+ self.assertEquals(split_prefixes('PATCH 1/2'), ['PATCH', '1/2'])
+
+class SubjectTest(TestCase):
+
+ def testCleanSubject(self):
+ self.assertEquals(clean_subject('meep'), 'meep')
+ self.assertEquals(clean_subject('Re: meep'), 'meep')
+ self.assertEquals(clean_subject('[PATCH] meep'), 'meep')
+ self.assertEquals(clean_subject('[PATCH] meep \n meep'), 'meep meep')
+ self.assertEquals(clean_subject('[PATCH RFC] meep'), '[RFC] meep')
+ self.assertEquals(clean_subject('[PATCH,RFC] meep'), '[RFC] meep')
+ self.assertEquals(clean_subject('[PATCH,1/2] meep'), '[1/2] meep')
+ self.assertEquals(clean_subject('[PATCH RFC 1/2] meep'),
+ '[RFC,1/2] meep')
+ self.assertEquals(clean_subject('[PATCH] [RFC] meep'),
+ '[RFC] meep')
+ self.assertEquals(clean_subject('[PATCH] [RFC,1/2] meep'),
+ '[RFC,1/2] meep')
+ self.assertEquals(clean_subject('[PATCH] [RFC] [1/2] meep'),
+ '[RFC,1/2] meep')
+ self.assertEquals(clean_subject('[PATCH] rewrite [a-z] regexes'),
+ 'rewrite [a-z] regexes')
+ self.assertEquals(clean_subject('[PATCH] [RFC] rewrite [a-z] regexes'),
+ '[RFC] rewrite [a-z] regexes')
+ self.assertEquals(clean_subject('[foo] [bar] meep', ['foo']),
+ '[bar] meep')
+ self.assertEquals(clean_subject('[FOO] [bar] meep', ['foo']),
+ '[bar] meep')