New submission from Sebastian Rittau <srit...@rittau.biz>: Consider the following code:
import cgi from io import BytesIO cgi.FieldStorage(BytesIO(b"{}"), environ={ "REQUEST_METHOD": "POST", "CONTENT_TYPE": "application/json", "CONTENT_LENGTH": "14", }) This will throw the following exception: Traceback (most recent call last): File "foo.py", line 7, in <module> "CONTENT_LENGTH": "14", File "/usr/lib/python3.6/cgi.py", line 561, in __init__ self.read_single() File "/usr/lib/python3.6/cgi.py", line 740, in read_single self.read_binary() File "/usr/lib/python3.6/cgi.py", line 762, in read_binary self.file.write(data) TypeError: write() argument must be str, not bytes Of course, the input does not contain any argument string to be parsed by FieldStorage. Nevertheless, a TypeError in a totally unrelated part of the code seems like a bug. In my opinion, FieldStorage should just remain empty in this case, or - at best - throw a ValueError with a sensible error message. ---------- messages: 306244 nosy: srittau priority: normal severity: normal status: open title: cgi: TypeError versions: Python 3.6 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue32029> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com