?? tests.py
字號:
def req_readline(req): s = req.readline() while s: req.write(s) s = req.readline() return apache.OKdef req_readlines(req): if 'SizeHint' in req.headers_in: lines = req.readlines(int(req.headers_in['SizeHint'])) else: lines = req.readlines() req.write("".join(lines)) return apache.OKdef req_discard_request_body(req): s = req.read(10) if s != '1234567890': req.log_error('read() #1 returned %s' % `s`) req.write('test failed') return apache.OK status = req.discard_request_body() if status != apache.OK: req.log_error('discard_request_body() returned %d' % status) return status s = req.read() if s: req.log_error('read() #2 returned %s' % `s`) req.write('test failed') return apache.OK req.write('test ok') return apache.OKdef req_register_cleanup(req): req.cleanup_data = "req_register_cleanup test ok" req.register_cleanup(cleanup, req) req.write("registered cleanup that will write to log") return apache.OKdef cleanup(data): # for req_register_cleanup above data.log_error(data.cleanup_data)def server_cleanup(data): # for srv_register_cleanup and apache_register_cleanup below apache.log_error(data)def req_headers_out(req): req.headers_out["X-Test-Header"] = "test ok" req.write("test ok") return apache.OKdef req_headers_out_access(req): return apache.OKdef req_sendfile(req): import tempfile fname = tempfile.mktemp("txt") f = open(fname, "w") f.write(" test ok "); f.close() req.sendfile(fname, 2, 7) # os.remove(fname) return apache.OKdef req_sendfile2(req): import tempfile fname = tempfile.mktemp("txt") f = open(fname, "w") f.write("0123456789"*100); f.close() req.sendfile(fname) # os.remove(fname) return apache.OK def req_sendfile3(req): """Check if sendfile handles symlinks properly. This is only valid on posix systems. """ import tempfile # note mktemp is deprecated in python 2.3. Should use mkstemp instead. fname = tempfile.mktemp("txt") f = open(fname, "w") f.write("0123456789"*100); f.close() fname_symlink = '%s.lnk' % fname os.symlink(fname, fname_symlink) req.sendfile(fname_symlink) os.remove(fname_symlink) os.remove(fname) return apache.OKdef req_handler(req): if req.phase == "PythonFixupHandler": req.handler = "mod_python" req.handler = None req.handler = "mod_python" req.add_handler("PythonHandler","tests::req_handler") return apache.OK elif req.phase == "PythonHandler": req.write('test ok') return apache.OK else: req.write('test failed') return apache.OKdef req_no_cache(req): req.no_cache = 1 req.write('test ok') return apache.OKdef req_update_mtime(req): assert(req.mtime == 0.0) req.update_mtime(100.0) assert(req.mtime == 100.0) req.set_etag() req.set_last_modified() req.write('test ok') return apache.OKdef util_redirect(req): from mod_python import util if req.main: # Sub request for ErrorDocument. req.write("test failed") return apache.DONE else: if req.phase == "PythonFixupHandler": util.redirect(req,location="/dummy",text="test ok") else: req.write('test failed') return apache.OKdef req_server_get_config(req): if req.server.get_config().get("PythonDebug","0") != "1" or \ req.get_config().get("PythonDebug","0") != "0": req.write('test failed') else: req.write('test ok') return apache.OKdef req_server_get_options(req): try: server_options = apache.main_server.get_options() assert(server_options.get("global","0") == "0") assert(server_options.get("override","0") == "0") server_options = req.connection.base_server.get_options() assert(server_options.get("global","0") == "0") assert(server_options.get("override","0") == "0") server_options = req.server.get_options() assert(server_options["global"] == "1") assert(server_options["override"] == "1") request_options = req.get_options() assert(request_options["global"] == "1") assert(request_options["override"] == "2") assert(request_options["local"] == "1") except: req.write('test failed') else: req.write('test ok') return apache.OKdef fileupload(req): from mod_python import util import md5 fields = util.FieldStorage(req) f = fields.getfirst('testfile') req.write(md5.new(f.file.read()).hexdigest()) return apache.OKdef srv_register_cleanup(req): req.server.register_cleanup(req, server_cleanup, "srv_register_cleanup test ok") req.write("registered server cleanup that will write to log") return apache.OKdef apache_register_cleanup(req): apache.register_cleanup(server_cleanup, "apache_register_cleanup test ok") req.write("registered server cleanup that will write to log") return apache.OKdef apache_exists_config_define(req): if apache.exists_config_define('FOOBAR'): req.write('FOOBAR') else: req.write('NO_FOOBAR') return apache.OKdef util_fieldstorage(req): from mod_python import util req.write(`util.FieldStorage(req).list`) return apache.OKdef postreadrequest(req): req.log_error('postreadrequest') req.add_common_vars() req.subprocess_env['TEST1'] = "'" req.subprocess_env['TEST2'] = '"' req.log_error('subprocess_env = %s' % req.subprocess_env) req.log_error('subprocess_env.values() = %s' % req.subprocess_env.values()) for value in req.subprocess_env.itervalues(): req.log_error('VALUE = %s' % value) for item in req.subprocess_env.iteritems(): req.log_error('ITEM = %s' % (item,)) req.log_error('SCRIPT_FILENAME = %s' % req.subprocess_env.get('SCRIPT_FILENAME')) req.log_error('SCRIPT_FILENAME = %s' % req.subprocess_env['SCRIPT_FILENAME']) req.write("test ok") return apache.DONEdef trans(req): req.filename = req.document_root()+"/tests.py" return apache.OKdef import_test(req): import sys, os directory = os.path.dirname(__file__) assert(map(os.path.normpath, sys.path).count(directory) == 1) if sys.modules.has_key("dummymodule"): if not apache.main_server.get_options().has_key("dummymodule::function"): req.log_error("dummymodule::function not executed") req.write("test failed") else: req.write("test ok") else: req.log_error("dummymodule not found in sys.modules") req.write("test failed") return apache.OKdef outputfilter1(filter): s = filter.read() while s: filter.write(s.upper()) s = filter.read() if s is None: filter.close() return apache.OKdef outputfilter2(filter): s = filter.read() while s: for c in s: filter.write(2*c) s = filter.read() if s is None: filter.close() return apache.OKdef simplehandler(req): if req.phase != "PythonHandler": req.write("test failed") return apache.OK req.write("test ok") if req.phase != "PythonHandler": req.write("test failed") return apache.OK return apache.OKdef req_add_output_filter(req): req.add_output_filter("MP_TEST_FILTER") req.write("test ok") return apache.OKdef req_register_output_filter(req): req.register_output_filter("MP_TEST_FILTER1","tests::outputfilter1") req.register_output_filter("MP_TEST_FILTER2",outputfilter2) req.add_output_filter("MP_TEST_FILTER1") req.add_output_filter("MP_TEST_FILTER2") req.write("test ok") return apache.OKdef connectionhandler(conn): # read whatever s = conn.readline().strip() while s: s = conn.readline().strip() # fake an HTTP response conn.write("HTTP/1.1 200 OK\r\n") conn.write("Content-Length: 7\r\n\r\n") conn.write("test ok") return apache.OKdef pipe_ext(req): # this is called by publisher return "pipe ext"def Cookie_Cookie(req): from mod_python import Cookie cookies = Cookie.get_cookies(req) for k in cookies: Cookie.add_cookie(req, cookies[k]) req.write("test ok") return apache.OKdef Cookie_MarshalCookie(req): from mod_python import Cookie cookies = Cookie.get_cookies(req, Cookie.MarshalCookie,
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -