mirror of
https://github.com/python/cpython.git
synced 2025-10-07 07:31:46 +00:00
bpo-38698: Add a new InvalidMessageID token to email header parser. (GH-17503)
This adds a new InvalidMessageID token to the email header parser which can be used to represent invalid message-id headers in the parse tree.
This commit is contained in:
parent
080ee5a884
commit
68157da8b4
3 changed files with 56 additions and 7 deletions
|
@ -850,10 +850,15 @@ class MsgID(TokenList):
|
|||
# message-id tokens may not be folded.
|
||||
return str(self) + policy.linesep
|
||||
|
||||
|
||||
class MessageID(MsgID):
|
||||
token_type = 'message-id'
|
||||
|
||||
|
||||
class InvalidMessageID(MessageID):
|
||||
token_type = 'invalid-message-id'
|
||||
|
||||
|
||||
class Header(TokenList):
|
||||
token_type = 'header'
|
||||
|
||||
|
@ -2110,11 +2115,18 @@ def parse_message_id(value):
|
|||
message_id = MessageID()
|
||||
try:
|
||||
token, value = get_msg_id(value)
|
||||
except errors.HeaderParseError:
|
||||
message_id.defects.append(errors.InvalidHeaderDefect(
|
||||
"Expected msg-id but found {!r}".format(value)))
|
||||
else:
|
||||
message_id.append(token)
|
||||
except errors.HeaderParseError as ex:
|
||||
token = get_unstructured(value)
|
||||
message_id = InvalidMessageID(token)
|
||||
message_id.defects.append(
|
||||
errors.InvalidHeaderDefect("Invalid msg-id: {!r}".format(ex)))
|
||||
else:
|
||||
# Value after parsing a valid msg_id should be None.
|
||||
if value:
|
||||
message_id.defects.append(errors.InvalidHeaderDefect(
|
||||
"Unexpected {!r}".format(value)))
|
||||
|
||||
return message_id
|
||||
|
||||
#
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue