tests/test-hgweb-no-path-info
author Brodie Rao <me+hg@dackz.net>
Sat, 13 Feb 2010 23:34:15 -0500
changeset 10453 7edc649f9f7e
parent 8167 6c82beaaa11a
child 12161 dfb11f9922c1
permissions -rwxr-xr-x
progress: make determinate bar more like wget progress bar foo [ ] 0/58 foo [> ] 1/58 foo [=> ] 2/58 ... foo [=======================================================> ] 56/58 foo [========================================================> ] 57/58 foo [=========================================================>] 58/58 The bar now has a '>' character at the end. This indicates the direction, is consistent with the indeterminate '<=>' bar, and looks much nicer.

#!/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" -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'
}

def process(app):
    content = app(env, startrsp)
    sys.stdout.write(output.getvalue())
    sys.stdout.write(''.join(content))
    print '---- ERRORS'
    print errors.getvalue()

output = StringIO()
env['QUERY_STRING'] = 'style=atom'
process(hgweb('.', name='repo'))

output = StringIO()
env['QUERY_STRING'] = 'style=raw'
process(hgwebdir({'repo': '.'}))
EOF

python request.py | sed "s/http:\/\/127\.0\.0\.1:[0-9]*\//http:\/\/127.0.0.1\//"