##// END OF EJS Templates
Do not use osutil.c with python 2.4 and Windows (issue1364)...
Do not use osutil.c with python 2.4 and Windows (issue1364) Windows python 2.4 os.stat() reports times including DST offset, while osutil.c reports the correct value, which makes status() systematically compare files content. This bug is fixed in python 2.5. Using osutil.py instead of osutil.c is 4x times slower on large repositories but current code is completely unusable. Given few people are likely to use python 2.4 on Windows this solution was considered a good trade-off compared to more invasive solutions trying to address the offset issue.

File last commit:

r8167:6c82beaa default
r10521:bde1bb25 stable
Show More
test-hgweb-no-request-uri
73 lines | 1.6 KiB | text/plain | TextLexer
/ tests / test-hgweb-no-request-uri
Dirkjan Ochtman
Use SCRIPT_NAME and PATH_INFO instead of REQUEST_URI. This is required by WSGI (fixes issue846).
r5579 #!/bin/sh
Dirkjan Ochtman
Fix style nit and add some comments to tests.
r5580 # 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.
Dirkjan Ochtman
Use SCRIPT_NAME and PATH_INFO instead of REQUEST_URI. This is required by WSGI (fixes issue846).
r5579
mkdir repo
cd repo
hg init
echo foo > bar
hg add bar
Martin Geisler
tests: removed redundant "-d '0 0'" from test scripts...
r8167 hg commit -m "test" -u "Testing"
Dirkjan Ochtman
Use SCRIPT_NAME and PATH_INFO instead of REQUEST_URI. This is required by WSGI (fixes issue846).
r5579 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
hgweb: return content iterator instead of using write() callable...
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
Use SCRIPT_NAME and PATH_INFO instead of REQUEST_URI. This is required by WSGI (fixes issue846).
r5579 output = StringIO()
env['PATH_INFO'] = '/'
env['QUERY_STRING'] = 'style=atom'
Dirkjan Ochtman
hgweb: return content iterator instead of using write() callable...
r6945 process(hgweb('.', name = 'repo'))
Dirkjan Ochtman
Use SCRIPT_NAME and PATH_INFO instead of REQUEST_URI. This is required by WSGI (fixes issue846).
r5579
output = StringIO()
env['PATH_INFO'] = '/file/tip/'
env['QUERY_STRING'] = 'style=raw'
Dirkjan Ochtman
hgweb: return content iterator instead of using write() callable...
r6945 process(hgweb('.', name = 'repo'))
Dirkjan Ochtman
Use SCRIPT_NAME and PATH_INFO instead of REQUEST_URI. This is required by WSGI (fixes issue846).
r5579
output = StringIO()
env['PATH_INFO'] = '/'
env['QUERY_STRING'] = 'style=raw'
Dirkjan Ochtman
hgweb: return content iterator instead of using write() callable...
r6945 process(hgwebdir({'repo': '.'}))
Dirkjan Ochtman
Use SCRIPT_NAME and PATH_INFO instead of REQUEST_URI. This is required by WSGI (fixes issue846).
r5579
output = StringIO()
env['PATH_INFO'] = '/repo/file/tip/'
env['QUERY_STRING'] = 'style=raw'
Dirkjan Ochtman
hgweb: return content iterator instead of using write() callable...
r6945 process(hgwebdir({'repo': '.'}))
Dirkjan Ochtman
Use SCRIPT_NAME and PATH_INFO instead of REQUEST_URI. This is required by WSGI (fixes issue846).
r5579 EOF
python request.py | sed "s/http:\/\/127\.0\.0\.1:[0-9]*\//http:\/\/127.0.0.1\//"