⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tests.py

📁 Mod_python is an Apache module that embeds the Python interpreter within the server. With mod_python
💻 PY
📖 第 1 页 / 共 4 页
字号:
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 + -