Merge pull request #32 from jdanbrown/fix-header-casing
Parsing should ignore header casing
This commit is contained in:
@@ -132,21 +132,21 @@ def parse_email(raw_email):
|
||||
parsed_email['sent_to'] = get_mail_addresses(email_message, 'to')
|
||||
|
||||
|
||||
value_headers_keys = ['Subject', 'Date','Message-ID']
|
||||
key_value_header_keys = ['Received-SPF',
|
||||
'MIME-Version',
|
||||
'X-Spam-Status',
|
||||
'X-Spam-Score',
|
||||
'Content-Type']
|
||||
value_headers_keys = ['subject', 'date','message-id']
|
||||
key_value_header_keys = ['received-spf',
|
||||
'mime-version',
|
||||
'x-spam-status',
|
||||
'x-spam-score',
|
||||
'content-type']
|
||||
|
||||
parsed_email['headers'] = []
|
||||
for key, value in email_dict.iteritems():
|
||||
|
||||
if key in value_headers_keys:
|
||||
if key.lower() in value_headers_keys:
|
||||
valid_key_name = key.lower().replace('-', '_')
|
||||
parsed_email[valid_key_name] = decode_mail_header(value)
|
||||
|
||||
if key in key_value_header_keys:
|
||||
if key.lower() in key_value_header_keys:
|
||||
parsed_email['headers'].append({'Name': key,
|
||||
'Value': value})
|
||||
|
||||
|
||||
@@ -43,6 +43,15 @@ class TestParser(unittest.TestCase):
|
||||
parsed_email = parse_email(raw_email)
|
||||
|
||||
self.assertEqual(u'Test email - no attachment', parsed_email.subject)
|
||||
self.assertEqual(u'Tue, 30 Jul 2013 15:56:29 +0300', parsed_email.date)
|
||||
self.assertEqual(u'<test0@example.com>', parsed_email.message_id)
|
||||
|
||||
|
||||
def test_parse_email_ignores_header_casing(self):
|
||||
self.assertEqual('one', parse_email('Message-ID: one').message_id)
|
||||
self.assertEqual('one', parse_email('Message-Id: one').message_id)
|
||||
self.assertEqual('one', parse_email('Message-id: one').message_id)
|
||||
self.assertEqual('one', parse_email('message-id: one').message_id)
|
||||
|
||||
|
||||
# TODO - Complete the test suite
|
||||
|
||||
Reference in New Issue
Block a user