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={})