When migrating from Flask to Quart, one of the issues I ran into was that Werkzeug's client supports more in the data field. This input supports having a dict passed in which will encode it to a form and also allows values to be file data. If you look at Quart's test client, it only accepts pre-formatted data fields. It doesn't support passing in form-like data which is encoded. This is much less flexible than Flask / Werkzeug allowed and is making porting hundreds of tests a headache for this Flask project.
Here's an example of a snippet of tests:
async with aiofiles.open(filename, 'rb') as f:
data = {
'file_mapping': 'custom',
'xlsx_file': (io.BytesIO(await f.read()), 'spreadsheet.xlsx')
}
res = await client.post(
url_for("import_page"),
data=data,
follow_redirects=True,
)
In Quart this results in something that is not parseable on the server side.
When migrating from Flask to Quart, one of the issues I ran into was that Werkzeug's client supports more in the
data
field. This input supports having adict
passed in which will encode it to a form and also allows values to be file data. If you look at Quart's test client, it only accepts pre-formatteddata
fields. It doesn't support passing in form-like data which is encoded. This is much less flexible than Flask / Werkzeug allowed and is making porting hundreds of tests a headache for this Flask project.Here's an example of a snippet of tests:
In Quart this results in something that is not parseable on the server side.