Mercurial > hg
view tests/test-non-interactive-wsgi @ 8819:e93ab347c814
test-convert-cvsnt-mergepoints: ignore differences between CVS 1.11 and 1.12.
- factor out cvsci function (similar to other test-convert-cvs* scripts)
- add filterpath function (also similar to other scripts)
- generally munge the output of CVS
- add lots of output to make it easier to follow when things go wrong
This doesn't make the test pass reliably under CVS 1.11; it just makes
it behave the same as under CVS 1.12, i.e. sometimes it passes and
sometimes it fails. Failure is more frequent with faster hardware.
author | Greg Ward <greg-hg@gerg.ca> |
---|---|
date | Mon, 15 Jun 2009 20:35:19 -0400 |
parents | 6c82beaaa11a |
children | 510122bb3c7f |
line wrap: on
line source
#!/bin/sh # Tests if hgweb can run without touching sys.stdin, as is required # by the WSGI standard and strictly implemented by mod_wsgi. mkdir repo cd repo hg init echo foo > bar hg add bar hg commit -m "test" hg tip cat > request.py <<EOF from mercurial import dispatch from mercurial.hgweb.hgweb_mod import hgweb from mercurial.ui import ui from mercurial import hg from StringIO import StringIO import os, sys class FileLike(object): def __init__(self, real): self.real = real def fileno(self): print >> sys.__stdout__, 'FILENO' return self.real.fileno() def read(self): print >> sys.__stdout__, 'READ' return self.real.read() def readline(self): print >> sys.__stdout__, 'READLINE' return self.real.readline() sys.stdin = FileLike(sys.stdin) errors = StringIO() input = StringIO() output = StringIO() def startrsp(headers, data): print '---- HEADERS' print headers print '---- DATA' print data return output.write env = { 'wsgi.version': (1, 0), 'wsgi.url_scheme': 'http', 'wsgi.errors': errors, 'wsgi.input': input, 'wsgi.multithread': False, 'wsgi.multiprocess': False, 'wsgi.run_once': False, 'REQUEST_METHOD': 'GET', 'SCRIPT_NAME': '', 'PATH_INFO': '', 'QUERY_STRING': '', 'SERVER_NAME': '127.0.0.1', 'SERVER_PORT': os.environ['HGPORT'], 'SERVER_PROTOCOL': 'HTTP/1.0' } hgweb('.')(env, startrsp) print '---- ERRORS' print errors.getvalue() EOF python request.py