test-hgweb-no-path-info
60 lines
| 1.3 KiB
| text/plain
|
TextLexer
/ tests / test-hgweb-no-path-info
Dirkjan Ochtman
|
r6459 | #!/bin/sh | ||
# This tests if hgweb and hgwebdir still work if the REQUEST_URI variable is | ||||
# no longer passed with the request. Instead, SCRIPT_NAME and PATH_INFO | ||||
# should be used from d74fc8dec2b4 onward to route the request. | ||||
mkdir repo | ||||
cd repo | ||||
hg init | ||||
echo foo > bar | ||||
hg add bar | ||||
hg commit -m "test" -d "0 0" -u "Testing" | ||||
hg tip | ||||
cat > request.py <<EOF | ||||
from mercurial.hgweb import hgweb, hgwebdir | ||||
from StringIO import StringIO | ||||
import os, sys | ||||
errors = StringIO() | ||||
input = 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': '', | ||||
'SERVER_NAME': '127.0.0.1', | ||||
'SERVER_PORT': os.environ['HGPORT'], | ||||
'SERVER_PROTOCOL': 'HTTP/1.0' | ||||
} | ||||
Dirkjan Ochtman
|
r6945 | def process(app): | ||
content = app(env, startrsp) | ||||
sys.stdout.write(output.getvalue()) | ||||
sys.stdout.write(''.join(content)) | ||||
print '---- ERRORS' | ||||
print errors.getvalue() | ||||
Dirkjan Ochtman
|
r6459 | output = StringIO() | ||
env['QUERY_STRING'] = 'style=atom' | ||||
Dirkjan Ochtman
|
r6945 | process(hgweb('.', name='repo')) | ||
Dirkjan Ochtman
|
r6459 | |||
output = StringIO() | ||||
env['QUERY_STRING'] = 'style=raw' | ||||
Dirkjan Ochtman
|
r6945 | process(hgwebdir({'repo': '.'})) | ||
Dirkjan Ochtman
|
r6459 | EOF | ||
python request.py | sed "s/http:\/\/127\.0\.0\.1:[0-9]*\//http:\/\/127.0.0.1\//" | ||||