Richard Lewis
richardlewis at fastmail.co.uk
Tue Aug 15 04:53:57 EDT 2006
On Tuesday 15 August 2006 05:35, guo tie wrote: > hi, > All > > These days i was work with mod_python, i found it is difficult to debug > it , if you can made it be debuged in python command line mode , > I do this: In my module that I'm working on I start with this code: ====== try: from mod_python import apache except: # if we're not running inside Apache (i.e. command line testing) # create a fake apache module class fake_apache: def __init__(self): self.HTTP_INTERNAL_SERVER_ERROR = 500 self.HTTP_NOT_FOUND = 404 self.OK = 200 self.SERVER_RETURN = Exception def import_module(self, name): return __import__(name, globals(), locals()) def server_root(self): return "" apache = fake_apache() ====== and then in a testing script I have something like this: ====== import my_module class server: def __init__(self): self.cleanup_func = None self.server_hostname = "" def register_cleanup(self, req, func): self.cleanup_func = func class request: def __init__(self, uri): self.uri = uri self.unparsed_uri = uri self._content_type = "" self.subprocess_env = {"SERVER_NAME": "localhost","DOCUMENT_ROOT": "/var/www"} self.server = server() self.server.server_hostname = self.subprocess_env['SERVER_NAME'] def document_root(self): return self.subprocess_env['DOCUMENT_ROOT'] def set_content_type(self, c): print >> sys.stderr, "Content-type: %s" % s self._content_type = c def get_content_type(self): return self._content_type content_type = property(fget=get_content_type, fset=set_content_type) def write(self, *args): for a in args: print a def sendfile(self, fn): f = open(fn, "r") print f.read() f.close() def set_content_length(self, l): print >> sys.stderr, "Content-length: %d" % l def add_common_vars(self): pass r = request(sys.argv[1]) my_module.handler(r) r.server.cleanup_func(r) ====== Which I run with a request URI as a parameter. Cheers, Richard -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Richard Lewis Sonic Arts Research Archive http://www.sara.uea.ac.uk/ JID: ironchicken at jabber.earth.li -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|