"""Tests for managing HTTP issues (malformed requests, etc).""" from cherrypy.test import test test.prefer_parent_path() from httplib import HTTPConnection, HTTPSConnection import cherrypy import mimetypes def encode_multipart_formdata(files): """Return (content_type, body) ready for httplib.HTTP instance. files: a sequence of (name, filename, value) tuples for multipart uploads. """ BOUNDARY = '________ThIs_Is_tHe_bouNdaRY_$' L = [] for key, filename, value in files: L.append('--' + BOUNDARY) L.append('Content-Disposition: form-data; name="%s"; filename="%s"' % (key, filename)) ct = mimetypes.guess_type(filename)[0] or 'application/octet-stream' L.append('Content-Type: %s' % ct) L.append('') L.append(value) L.append('--' + BOUNDARY + '--') L.append('') body = '\r\n'.join(L) content_type = 'multipart/form-data; boundary=%s' % BOUNDARY return content_type, body
from cherrypy.test import test test.prefer_parent_path() import os localDir = os.path.dirname(__file__) import sys import threading import time import cherrypy from cherrypy.lib import sessions def http_methods_allowed(methods=['GET', 'HEAD']): method = cherrypy.request.method.upper() if method not in methods: cherrypy.response.headers['Allow'] = ", ".join(methods) raise cherrypy.HTTPError(405) cherrypy.tools.allow = cherrypy.Tool('on_start_resource', http_methods_allowed) def setup_server(): class Root: _cp_config = { 'tools.sessions.on': True, 'tools.sessions.storage_type': 'ram',