def test_parse_non_ascii_filename_in_headers(client):
class Resource:
def on_post(self, req, resp, **kwargs):
assert req.get_param('afile').file.read() == b'name,code\nnom,2\n'
assert req.get_param('afile').filename == 'Na%C3%AFve%20file.txt'
resp.body = 'parsed'
resp.content_type = 'text/plain'
application.add_route('/route', Resource())
# Simulate browser sending non ascii filename.
body = ('--boundary\r\nContent-Disposition: '
'form-data; name="afile"; filename*=utf-8\'\'Na%C3%AFve%20file.txt'
'\r\nContent-Type: text/csv\r\n\r\nname,code\nnom,2\n\r\n'
'--boundary--\r\n')
headers = {'Content-Type': 'multipart/form-data; boundary=boundary'}
resp = client.post('/route', body=body, headers=headers)
assert resp.status == falcon.HTTP_OK
assert resp.body == 'parsed'
评论列表
文章目录