Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Lib/email/_header_value_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -1575,7 +1575,7 @@ def get_dtext(value):
def _check_for_early_dl_end(value, domain_literal):
if value:
return False
domain_literal.append(errors.InvalidHeaderDefect(
domain_literal.defects.append(errors.InvalidHeaderDefect(
"end of input inside domain-literal"))
domain_literal.append(ValueTerminal(']', 'domain-literal-end'))
return True
Expand Down
6 changes: 6 additions & 0 deletions Lib/test/test_email/test__header_value_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -2765,6 +2765,12 @@ def test_parse_valid_message_id(self):
)
self.assertEqual(message_id.token_type, 'message-id')

def test_parse_message_id_with_invalid_domain(self):
message_id = parser.parse_message_id("<T@[")
self.assertEqual(message_id.token_type, 'message-id')
self.assertEqual(str(message_id.all_defects[-1]),
"end of input inside domain-literal")

def test_parse_message_id_with_remaining(self):
message_id = self._test_parse_x(
parser.parse_message_id,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
:mod:`email`: Fix parsing of emails message ID with invalid domain.
Loading