mirror of
https://github.com/python/cpython.git
synced 2025-08-03 00:23:06 +00:00
Tokio Kikuchi's fix for SF bug #1629369; folding whitespace allowed in the
display name of an email address, e.g. Foo \tBar <foo@example.com> Test case added by Barry.
This commit is contained in:
parent
071d1ae136
commit
cbbc3f19c1
3 changed files with 17 additions and 4 deletions
|
@ -1,4 +1,4 @@
|
|||
# Copyright (C) 2002-2006 Python Software Foundation
|
||||
# Copyright (C) 2002-2007 Python Software Foundation
|
||||
# Contact: email-sig@python.org
|
||||
|
||||
"""Email address parsing code.
|
||||
|
@ -172,6 +172,7 @@ class AddrlistClass:
|
|||
self.pos = 0
|
||||
self.LWS = ' \t'
|
||||
self.CR = '\r\n'
|
||||
self.FWS = self.LWS + self.CR
|
||||
self.atomends = self.specials + self.LWS + self.CR
|
||||
# Note that RFC 2822 now specifies `.' as obs-phrase, meaning that it
|
||||
# is obsolete syntax. RFC 2822 requires that we recognize obsolete
|
||||
|
@ -418,7 +419,7 @@ class AddrlistClass:
|
|||
plist = []
|
||||
|
||||
while self.pos < len(self.field):
|
||||
if self.field[self.pos] in self.LWS:
|
||||
if self.field[self.pos] in self.FWS:
|
||||
self.pos += 1
|
||||
elif self.field[self.pos] == '"':
|
||||
plist.append(self.getquote())
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Copyright (C) 2001-2006 Python Software Foundation
|
||||
# Copyright (C) 2001-2007 Python Software Foundation
|
||||
# Contact: email-sig@python.org
|
||||
# email package unit tests
|
||||
|
||||
|
@ -2165,6 +2165,12 @@ class TestMiscellaneous(TestEmailBase):
|
|||
# formataddr() quotes the name if there's a dot in it
|
||||
self.assertEqual(Utils.formataddr((a, b)), y)
|
||||
|
||||
def test_multiline_from_comment(self):
|
||||
x = """\
|
||||
Foo
|
||||
\tBar <foo@example.com>"""
|
||||
self.assertEqual(Utils.parseaddr(x), ('Foo Bar', 'foo@example.com'))
|
||||
|
||||
def test_quote_dump(self):
|
||||
self.assertEqual(
|
||||
Utils.formataddr(('A Silly; Person', 'person@dom.ain')),
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Copyright (C) 2001-2006 Python Software Foundation
|
||||
# Copyright (C) 2001-2007 Python Software Foundation
|
||||
# Contact: email-sig@python.org
|
||||
# email package unit tests
|
||||
|
||||
|
@ -2171,6 +2171,12 @@ class TestMiscellaneous(TestEmailBase):
|
|||
# formataddr() quotes the name if there's a dot in it
|
||||
self.assertEqual(utils.formataddr((a, b)), y)
|
||||
|
||||
def test_multiline_from_comment(self):
|
||||
x = """\
|
||||
Foo
|
||||
\tBar <foo@example.com>"""
|
||||
self.assertEqual(utils.parseaddr(x), ('Foo Bar', 'foo@example.com'))
|
||||
|
||||
def test_quote_dump(self):
|
||||
self.assertEqual(
|
||||
utils.formataddr(('A Silly; Person', 'person@dom.ain')),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue