mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
RFC 2822 describes the characters allowed in a header field name. Conform to
this, and add test cases.
This commit is contained in:
parent
e48bad7a24
commit
f4c7c402d4
2 changed files with 19 additions and 1 deletions
|
@ -27,7 +27,9 @@ NLCRE = re.compile('\r\n|\r|\n')
|
|||
NLCRE_bol = re.compile('(\r\n|\r|\n)')
|
||||
NLCRE_eol = re.compile('(\r\n|\r|\n)$')
|
||||
NLCRE_crack = re.compile('(\r\n|\r|\n)')
|
||||
headerRE = re.compile(r'^(From |[-\w]{2,}:|[\t ])')
|
||||
# RFC 2822 $3.6.8 Optional fields. ftext is %d33-57 / %d59-126, Any character
|
||||
# except controls, SP, and ":".
|
||||
headerRE = re.compile(r'^(From |[\041-\071\073-\176]{2,}:|[\t ])')
|
||||
EMPTYSTRING = ''
|
||||
NL = '\n'
|
||||
|
||||
|
|
|
@ -2402,6 +2402,22 @@ Here's the message body
|
|||
eq(msg.get('Header'), value1)
|
||||
eq(msg.get('Next-Header'), value2)
|
||||
|
||||
def test_rfc2822_header_syntax(self):
|
||||
eq = self.assertEqual
|
||||
m = '>From: foo\nFrom: bar\n!"#QUX;~: zoo\n\nbody'
|
||||
msg = email.message_from_string(m)
|
||||
eq(len(msg.keys()), 3)
|
||||
keys = msg.keys()
|
||||
keys.sort()
|
||||
eq(keys, ['!"#QUX;~', '>From', 'From'])
|
||||
eq(msg.get_payload(), 'body')
|
||||
|
||||
def test_rfc2822_space_not_allowed_in_header(self):
|
||||
eq = self.assertEqual
|
||||
m = '>From foo@example.com 11:25:53\nFrom: bar\n!"#QUX;~: zoo\n\nbody'
|
||||
msg = email.message_from_string(m)
|
||||
eq(len(msg.keys()), 0)
|
||||
|
||||
|
||||
|
||||
class TestBase64(unittest.TestCase):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue