New submission from Joel Uckelman: Test case:
import email import email.policy txt = '''From: juckel...@strozfriedberg.co.uk To: (Recipient list suppressed) Date: Thu, 22 Aug 2013 04:13:02 +0000 Subject: ADSF-1082 Hey! ''' msg = email.message_from_string(txt) msg.get('to') msg = email.message_from_string(txt, policy=email.policy.default) msg.get('to') The second msg.get() throws an IndexError: Traceback (most recent call last): File "test.py", line 16, in <module> print(msg.get('to')) # throws IndexError File "/usr/lib64/python3.5/email/message.py", line 472, in get return self.policy.header_fetch_parse(k, v) File "/usr/lib64/python3.5/email/policy.py", line 153, in header_fetch_parse return self.header_factory(name, ''.join(value.splitlines())) File "/usr/lib64/python3.5/email/headerregistry.py", line 586, in __call__ return self[name](name, value) File "/usr/lib64/python3.5/email/headerregistry.py", line 197, in __new__ cls.parse(value, kwds) File "/usr/lib64/python3.5/email/headerregistry.py", line 337, in parse kwds['parse_tree'] = address_list = cls.value_parser(value) File "/usr/lib64/python3.5/email/headerregistry.py", line 328, in value_parser address_list, value = parser.get_address_list(value) File "/usr/lib64/python3.5/email/_header_value_parser.py", line 2336, in get_address_list token, value = get_address(value) File "/usr/lib64/python3.5/email/_header_value_parser.py", line 2313, in get_address token, value = get_group(value) File "/usr/lib64/python3.5/email/_header_value_parser.py", line 2269, in get_group token, value = get_display_name(value) File "/usr/lib64/python3.5/email/_header_value_parser.py", line 2095, in get_display_name token, value = get_phrase(value) File "/usr/lib64/python3.5/email/_header_value_parser.py", line 1770, in get_phrase token, value = get_word(value) File "/usr/lib64/python3.5/email/_header_value_parser.py", line 1745, in get_word if value[0]=='"': IndexError: string index out of range The docs say that email.policy.default has raise_on_defect set to False, hence parse errors ought to be reported via EmailMessage.defects, not by throwing an exception. ---------- components: email messages: 286631 nosy: barry, r.david.murray, uckelman priority: normal severity: normal status: open title: IndexError thrown on email.message.M type: behavior versions: Python 3.5 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue29412> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com