def test_multipart(): env = dict(copy.deepcopy(env1)) form_data = '''-----------------------------9051914041544843365972754266 Content-Disposition: form-data; name="text" text default -----------------------------9051914041544843365972754266 Content-Disposition: form-data; name="file1"; filename="a.txt" Content-Type: text/plain Content of a.txt. -----------------------------9051914041544843365972754266 Content-Disposition: form-data; name="file2"; filename="a.html" Content-Type: text/html <!DOCTYPE html><title>Content of a.html.</title> -----------------------------9051914041544843365972754266-- ''' env['CONTENT_TYPE'] = 'multipart/form-data; boundary=---------------------------9051914041544843365972754266' env['wsgi.input'] = BytesIO(to_bytes(form_data)) env['CONTENT_LENGTH'] = len(form_data) env['QUERY_STRING'] = '' req = Request(env) assert req.args == MultiDict() assert req.form == FormsDict({'text':'text default'}.items()) assert req.values == MultiDict({'text':'text default'}.items()) a_txt = req.files['file1'] a_html = req.files['file2'] assert a_txt.filename == 'a.txt' assert a_txt.headers['Content-Type'] == 'text/plain' assert a_html.filename == 'a.html' assert a_html.headers['Content-Type'] == 'text/html' assert req.close() == None