Since we use UTC for internal date storage, we lose the timestamp info
from the original patch submissions. This means that the mbox views
(which are typically passed through to SCM commit logs) lose the
timezone information.
This change uses the Date header from the original message, if possible.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
self.cc_header = 'Cc: CC Person <cc@example.com>'
self.to_header = 'To: To Person <to@example.com>'
self.cc_header = 'Cc: CC Person <cc@example.com>'
self.to_header = 'To: To Person <to@example.com>'
+ self.date_header = 'Date: Fri, 7 Jun 2013 15:42:54 +1000'
self.patch = Patch(project = defaults.project,
msgid = 'p1', name = 'testpatch',
self.patch = Patch(project = defaults.project,
msgid = 'p1', name = 'testpatch',
response = self.client.get('/patch/%d/mbox/' % self.patch.id)
self.assertContains(response, self.to_header)
response = self.client.get('/patch/%d/mbox/' % self.patch.id)
self.assertContains(response, self.to_header)
+ def testDateHeader(self):
+ self.patch.headers = self.date_header + '\n'
+ self.patch.save()
+
+ response = self.client.get('/patch/%d/mbox/' % self.patch.id)
+ self.assertContains(response, self.date_header)
+
class MboxBrokenFromHeaderTest(TestCase):
""" Test that a person with characters outside ASCII in his name do
produce correct From header. As RFC 2822 state we must retain the
class MboxBrokenFromHeaderTest(TestCase):
""" Test that a person with characters outside ASCII in his name do
produce correct From header. As RFC 2822 state we must retain the
mail = PatchMbox(body)
mail['Subject'] = patch.name
mail = PatchMbox(body)
mail['Subject'] = patch.name
- mail['Date'] = email.utils.formatdate(utc_timestamp)
mail['From'] = email.utils.formataddr((
str(Header(patch.submitter.name, mail.patch_charset)),
patch.submitter.email))
mail['From'] = email.utils.formataddr((
str(Header(patch.submitter.name, mail.patch_charset)),
patch.submitter.email))
mail.set_unixfrom('From patchwork ' + patch.date.ctime())
mail.set_unixfrom('From patchwork ' + patch.date.ctime())
- copied_headers = ['To', 'Cc']
+ copied_headers = ['To', 'Cc', 'Date']
orig_headers = HeaderParser().parsestr(str(patch.headers))
for header in copied_headers:
if header in orig_headers:
mail[header] = orig_headers[header]
orig_headers = HeaderParser().parsestr(str(patch.headers))
for header in copied_headers:
if header in orig_headers:
mail[header] = orig_headers[header]
+ if 'Date' not in mail:
+ mail['Date'] = email.utils.formatdate(utc_timestamp)
+