##// END OF EJS Templates
Make contrib/buildrpm work on Fedora 9....
Make contrib/buildrpm work on Fedora 9. mercurial.spec had bitrotted. These changes makes it possible to build an rpm that is usable. Only minimal changes has been made, and there is plenty of room for improvement.

File last commit:

r5580:f429e0e0 default
r7277:3e000e2b default
Show More
test-non-interactive-wsgi
71 lines | 1.5 KiB | text/plain | TextLexer
/ tests / test-non-interactive-wsgi
#!/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" -d "0 0"
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()
def isatty(self):
print >> sys.__stdout__, 'ISATTY'
return False
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