diff options
author | Amber Brown <hawkowl@atleastfornow.net> | 2018-05-14 18:11:55 -0400 |
---|---|---|
committer | Ned Deily <nad@python.org> | 2018-05-14 18:11:55 -0400 |
commit | 545c955be997efd6b3827b981024e6b9945d82d1 (patch) | |
tree | 7e66dc411f94029250b67465c474dfde19695cde /Lib/test/test_cgi.py | |
parent | 3059042410dce69806b94be72d5c8055d616f3a3 (diff) | |
download | cpython-git-545c955be997efd6b3827b981024e6b9945d82d1.tar.gz |
bpo-33497: Add errors param to cgi.parse_multipart and make an encoding in FieldStorage use the given errors (GH-6804)
Diffstat (limited to 'Lib/test/test_cgi.py')
-rw-r--r-- | Lib/test/test_cgi.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Lib/test/test_cgi.py b/Lib/test/test_cgi.py index 903d0731f9..4f2bba14a1 100644 --- a/Lib/test/test_cgi.py +++ b/Lib/test/test_cgi.py @@ -130,6 +130,24 @@ class CgiTests(unittest.TestCase): 'file': [b'Testing 123.\n'], 'title': ['']} self.assertEqual(result, expected) + def test_parse_multipart_invalid_encoding(self): + BOUNDARY = "JfISa01" + POSTDATA = """--JfISa01 +Content-Disposition: form-data; name="submit-name" +Content-Length: 3 + +\u2603 +--JfISa01""" + fp = BytesIO(POSTDATA.encode('utf8')) + env = {'boundary': BOUNDARY.encode('latin1'), + 'CONTENT-LENGTH': str(len(POSTDATA.encode('utf8')))} + result = cgi.parse_multipart(fp, env, encoding="ascii", + errors="surrogateescape") + expected = {'submit-name': ["\udce2\udc98\udc83"]} + self.assertEqual(result, expected) + self.assertEqual("\u2603".encode('utf8'), + result["submit-name"][0].encode('utf8', 'surrogateescape')) + def test_fieldstorage_properties(self): fs = cgi.FieldStorage() self.assertFalse(fs) |