/opt/imh-python/lib/python3.9/site-packages/cherrypy/test
NameSizeModeActions
static/-0755rm
__pycache__/-0755rm
benchmark.py125630644editdlrm
checkerdemo.py18610644editdlrm
fastcgi.conf6860644editdlrm
fcgi.conf4860644editdlrm
helper.py163690644editdlrm
logtest.py81510644editdlrm
modfastcgi.py46520644editdlrm
modfcgid.py42370644editdlrm
modpy.py49780644editdlrm
modwsgi.py48340644editdlrm
sessiondemo.py54250644editdlrm
style.css170644editdlrm
test.pem22540644editdlrm
test_auth_basic.py44990644editdlrm
test_auth_digest.py44540644editdlrm
test_bus.py99600644editdlrm
test_caching.py143860644editdlrm
test_config.py88360644editdlrm
test_config_server.py40370644editdlrm
test_conn.py307440644editdlrm
test_core.py304080644editdlrm
test_dynamicobjectmapping.py123310644editdlrm
test_encoding.py175350644editdlrm
test_etags.py30930644editdlrm
test_http.py109390644editdlrm
test_httputil.py24120644editdlrm
test_iterator.py57240644editdlrm
test_json.py28600644editdlrm
test_logging.py83150644editdlrm
test_mime.py45380644editdlrm
test_misc_tools.py70940644editdlrm
test_native.py9710644editdlrm
test_objectmapping.py145040644editdlrm
test_params.py18620644editdlrm
test_plugins.py3340644editdlrm
test_proxy.py56300644editdlrm
test_refleaks.py15550644editdlrm
test_request_obj.py370970644editdlrm
test_routes.py25830644editdlrm
test_session.py179490644editdlrm
test_sessionauthenticate.py20130644editdlrm
test_states.py167030644editdlrm
test_static.py167020644editdlrm
test_tools.py178510644editdlrm
test_tutorials.py69640644editdlrm
test_virtualhost.py40210644editdlrm
test_wsgiapps.py39970644editdlrm
test_wsgi_ns.py28120644editdlrm
test_wsgi_unix_socket.py22280644editdlrm
test_wsgi_vhost.py10340644editdlrm
test_xmlrpc.py45840644editdlrm
webtest.py2620644editdlrm
_test_decorators.py9510644editdlrm
_test_states_demo.py18760644editdlrm
__init__.py3960644editdlrm
Edit: /opt/imh-python/lib/python3.9/site-packages/cherrypy/test/test_mime.py (4538B)
"""Tests for various MIME issues, including the safe_multipart Tool.""" import cherrypy from cherrypy._cpcompat import ntou from cherrypy.test import helper def setup_server(): class Root: @cherrypy.expose def multipart(self, parts): return repr(parts) @cherrypy.expose def multipart_form_data(self, **kwargs): return repr(list(sorted(kwargs.items()))) @cherrypy.expose def flashupload(self, Filedata, Upload, Filename): return ('Upload: %s, Filename: %s, Filedata: %r' % (Upload, Filename, Filedata.file.read())) cherrypy.config.update({'server.max_request_body_size': 0}) cherrypy.tree.mount(Root()) # Client-side code # class MultipartTest(helper.CPWebCase): setup_server = staticmethod(setup_server) def test_multipart(self): text_part = ntou('This is the text version') html_part = ntou( """ This is the HTML version """) body = '\r\n'.join([ '--123456789', "Content-Type: text/plain; charset='ISO-8859-1'", 'Content-Transfer-Encoding: 7bit', '', text_part, '--123456789', "Content-Type: text/html; charset='ISO-8859-1'", '', html_part, '--123456789--']) headers = [ ('Content-Type', 'multipart/mixed; boundary=123456789'), ('Content-Length', str(len(body))), ] self.getPage('/multipart', headers, 'POST', body) self.assertBody(repr([text_part, html_part])) def test_multipart_form_data(self): body = '\r\n'.join([ '--X', 'Content-Disposition: form-data; name="foo"', '', 'bar', '--X', # Test a param with more than one value. # See # https://github.com/cherrypy/cherrypy/issues/1028 'Content-Disposition: form-data; name="baz"', '', '111', '--X', 'Content-Disposition: form-data; name="baz"', '', '333', '--X--' ]) self.getPage('/multipart_form_data', method='POST', headers=[( 'Content-Type', 'multipart/form-data;boundary=X'), ('Content-Length', str(len(body))), ], body=body), self.assertBody( repr([('baz', [ntou('111'), ntou('333')]), ('foo', ntou('bar'))])) class SafeMultipartHandlingTest(helper.CPWebCase): setup_server = staticmethod(setup_server) def test_Flash_Upload(self): headers = [ ('Accept', 'text/*'), ('Content-Type', 'multipart/form-data; ' 'boundary=----------KM7Ij5cH2KM7Ef1gL6ae0ae0cH2gL6'), ('User-Agent', 'Shockwave Flash'), ('Host', 'www.example.com:54583'), ('Content-Length', '499'), ('Connection', 'Keep-Alive'), ('Cache-Control', 'no-cache'), ] filedata = (b'\r\n' b'\r\n' b'\r\n') body = ( b'------------KM7Ij5cH2KM7Ef1gL6ae0ae0cH2gL6\r\n' b'Content-Disposition: form-data; name="Filename"\r\n' b'\r\n' b'.project\r\n' b'------------KM7Ij5cH2KM7Ef1gL6ae0ae0cH2gL6\r\n' b'Content-Disposition: form-data; ' b'name="Filedata"; filename=".project"\r\n' b'Content-Type: application/octet-stream\r\n' b'\r\n' + filedata + b'\r\n' b'------------KM7Ij5cH2KM7Ef1gL6ae0ae0cH2gL6\r\n' b'Content-Disposition: form-data; name="Upload"\r\n' b'\r\n' b'Submit Query\r\n' # Flash apps omit the trailing \r\n on the last line: b'------------KM7Ij5cH2KM7Ef1gL6ae0ae0cH2gL6--' ) self.getPage('/flashupload', headers, 'POST', body) self.assertBody('Upload: Submit Query, Filename: .project, ' 'Filedata: %r' % filedata)