comparison tests/test-hgweb-no-path-info @ 6459:8189e03adb44

hgweb: make hgwebdir work in the absence of PATH_INFO Thanks to Andrea Arcangeli for reporting and an initial patch.
author Dirkjan Ochtman <dirkjan@ochtman.nl>
date Thu, 03 Apr 2008 13:14:43 +0200
parents
children 4879468fa28f
comparison
equal deleted inserted replaced
6456:db5324d3c257 6459:8189e03adb44
1 #!/bin/sh
2 # This tests if hgweb and hgwebdir still work if the REQUEST_URI variable is
3 # no longer passed with the request. Instead, SCRIPT_NAME and PATH_INFO
4 # should be used from d74fc8dec2b4 onward to route the request.
5
6 mkdir repo
7 cd repo
8 hg init
9 echo foo > bar
10 hg add bar
11 hg commit -m "test" -d "0 0" -u "Testing"
12 hg tip
13
14 cat > request.py <<EOF
15 from mercurial.hgweb import hgweb, hgwebdir
16 from StringIO import StringIO
17 import os, sys
18
19 errors = StringIO()
20 input = StringIO()
21
22 def startrsp(headers, data):
23 print '---- HEADERS'
24 print headers
25 print '---- DATA'
26 print data
27 return output.write
28
29 env = {
30 'wsgi.version': (1, 0),
31 'wsgi.url_scheme': 'http',
32 'wsgi.errors': errors,
33 'wsgi.input': input,
34 'wsgi.multithread': False,
35 'wsgi.multiprocess': False,
36 'wsgi.run_once': False,
37 'REQUEST_METHOD': 'GET',
38 'SCRIPT_NAME': '',
39 'SERVER_NAME': '127.0.0.1',
40 'SERVER_PORT': os.environ['HGPORT'],
41 'SERVER_PROTOCOL': 'HTTP/1.0'
42 }
43
44 output = StringIO()
45 env['QUERY_STRING'] = 'style=atom'
46 hgweb('.', name = 'repo')(env, startrsp)
47 print output.getvalue()
48 print '---- ERRORS'
49 print errors.getvalue()
50
51 output = StringIO()
52 env['QUERY_STRING'] = 'style=raw'
53 hgwebdir({'repo': '.'})(env, startrsp)
54 print output.getvalue()
55 print '---- ERRORS'
56 print errors.getvalue()
57 EOF
58
59 python request.py | sed "s/http:\/\/127\.0\.0\.1:[0-9]*\//http:\/\/127.0.0.1\//"