gh-134151 Fix `TypeError` in `email.utils.decode_params` when sorting… · python/cpython@bcb6b45 · GitHub
Skip to content

Commit bcb6b45

Browse files
authored
gh-134151 Fix TypeError in email.utils.decode_params when sorting RFC 2231 continuations (#134687)
- Fix sorting logic in `email.utils.decode_params` to handle None values. - Update tests for RFC 2231 continuation sorting.
1 parent d610f11 commit bcb6b45

3 files changed

Lines changed: 28 additions & 2 deletions

File tree

Lib/email/utils.py

Lines changed: 8 additions & 2 deletions

Lib/test/test_email/test_email.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,24 @@ def test_bad_param(self):
389389
msg = email.message_from_string("Content-Type: blarg; baz; boo\n")
390390
self.assertEqual(msg.get_param('baz'), '')
391391

392+
def test_continuation_sorting_part_order(self):
393+
msg = email.message_from_string(
394+
"Content-Disposition: attachment; "
395+
"filename*=\"ignored\"; "
396+
"filename*0*=\"utf-8''foo%20\"; "
397+
"filename*1*=\"bar.txt\"\n"
398+
)
399+
filename = msg.get_filename()
400+
self.assertEqual(filename, 'foo bar.txt')
401+
402+
def test_sorting_no_continuations(self):
403+
msg = email.message_from_string(
404+
"Content-Disposition: attachment; "
405+
"filename*=\"bar.txt\"; "
406+
)
407+
filename = msg.get_filename()
408+
self.assertEqual(filename, 'bar.txt')
409+
392410
def test_missing_filename(self):
393411
msg = email.message_from_string("From: foo\n")
394412
self.assertEqual(msg.get_filename(), None)
Lines changed: 2 additions & 0 deletions

0 commit comments

Comments
 (0)