gh-93010: InvalidHeaderError used but nonexistent (GH-93015)

* fix issue 93010

Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
(cherry picked from commit 71abeb0895)

Co-authored-by: oda-gitso <105083118+oda-gitso@users.noreply.github.com>
This commit is contained in:
Miss Islington (bot) 2022-05-23 09:57:12 -07:00 committed by GitHub
parent fc31e2de3c
commit a509d2674a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 10 deletions

View File

@ -2379,7 +2379,7 @@ def get_section(value):
digits += value[0]
value = value[1:]
if digits[0] == '0' and digits != '0':
section.defects.append(errors.InvalidHeaderError(
section.defects.append(errors.InvalidHeaderDefect(
"section number has an invalid leading 0"))
section.number = int(digits)
section.append(ValueTerminal(digits, 'digits'))

View File

@ -19,24 +19,25 @@ import email
import email.policy
from email.charset import Charset
from email.header import Header, decode_header, make_header
from email.parser import Parser, HeaderParser
from email.generator import Generator, DecodedGenerator, BytesGenerator
from email.header import Header, decode_header, make_header
from email.headerregistry import HeaderRegistry
from email.message import Message
from email.mime.application import MIMEApplication
from email.mime.audio import MIMEAudio
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.base import MIMEBase
from email.mime.image import MIMEImage
from email.mime.message import MIMEMessage
from email.mime.multipart import MIMEMultipart
from email.mime.nonmultipart import MIMENonMultipart
from email import utils
from email import errors
from email import encoders
from email import iterators
from email.mime.text import MIMEText
from email.parser import Parser, HeaderParser
from email import base64mime
from email import encoders
from email import errors
from email import iterators
from email import quoprimime
from email import utils
from test.support import threading_helper
from test.support.os_helper import unlink
@ -5541,7 +5542,12 @@ class TestSigned(TestEmailBase):
result = fp.getvalue()
self._signed_parts_eq(original, result)
class TestHeaderRegistry(TestEmailBase):
# See issue gh-93010.
def test_HeaderRegistry(self):
reg = HeaderRegistry()
a = reg('Content-Disposition', 'attachment; 0*00="foo"')
self.assertIsInstance(a.defects[0], errors.InvalidHeaderDefect)
if __name__ == '__main__':
unittest.main()

View File

@ -0,0 +1 @@
In a very special case, the email package tried to append the nonexistent ``InvalidHeaderError`` to the defect list. It should have been ``InvalidHeaderDefect``.