Zope2 Sprint
»
ZopeCommandLineTest
import os import sys here = os.path.dirname(__file__) sys.path.insert(0, os.path.join(here, 'lib', 'python')) import Zope from ZPublisher import publish_module __version__ = 1 def publish(script=None,path_info='/', u=None,p=None,d=None,t=None,e=None,s=None,pm=0, extra=None, request_method='GET', fp=None, stdin=sys.stdin): profile=p debug=d timeit=t silent=s if e is None: e={} if extra is None: extra={} if script is None: script='Zope' if script[0]=='+': script='../../lib/python/'+script[1:] env=e env['SERVER_NAME']='zope_test.server' env['SERVER_PORT']='80' env['REQUEST_METHOD']=request_method env['REMOTE_ADDR']='127.0.0.1' env['REMOTE_HOST']='zope_test.remote.host' env['HTTP_USER_AGENT']='Zope_test/%s' % __version__ env['HTTP_HOST']='127.0.0.1' env['SERVER_SOFTWARE']='Zope_test/%s' % __version__ env['SERVER_PROTOCOL']='HTTP/1.1' env['HTTP_ACCEPT']='image/gif, image/x-xbitmap, image/jpeg, */* ' env['SERVER_HOSTNAME']='zope_test.server.host' env['GATEWAY_INTERFACE']='CGI/1.1 ' env['SCRIPT_NAME']='' #script p=path_info.split('?') if len(p)==1: env['PATH_INFO'] = p[0] elif len(p)==2: [env['PATH_INFO'], env['QUERY_STRING']]=p else: raise TypeError, '' if u: import base64 env['HTTP_AUTHORIZATION']="Basic %s" % base64.encodestring(u) dir,file=os.path.split(script) cdir=os.path.join(dir,'Components') sys.path[0:0]=[dir,cdir,os.path.join(cdir,sys.platform)] # We delay import to here, in case Publish is part of the # application distribution. if silent: stdout=open('/dev/null','w') else: if fp and hasattr(fp,'write'): stdout = fp else: stdout=sys.stdout publish_module(file, environ=env, stdout=stdout) print '\n%s\n' % ('_'*60) if __name__ == "__main__": path_info = '/standard_html_header' Zope.configure(os.path.join(here, 'etc', 'zope.conf')) Zope.startup() publish('Zope', path_info=path_info, e={})