author | Christian Ebert <blacktrash@gmx.net> |
Tue, 16 Mar 2010 22:27:22 +0100 | |
changeset 700 | bf7b214673e2 |
parent 567 | fd52c78e1aa7 |
child 717 | 43efa35c5eed |
permissions | -rwxr-xr-x |
513
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
1 |
#!/usr/bin/env python |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
2 |
|
567
fd52c78e1aa7
tests: fix doc string in get-with-headers.py
Martin Geisler <mg@lazybytes.net>
parents:
566
diff
changeset
|
3 |
"""This does HTTP GET requests given a host:port and path and returns |
513
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
4 |
a subset of the headers plus the body of the result.""" |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
5 |
|
566
986012d03ed3
test-hgweb-*: replace "XX years ago" by a fixed string in get-with-headers.py
Gilles Moris <gilles.moris@free.fr>
parents:
515
diff
changeset
|
6 |
import httplib, sys, re |
515
9ea5ac3258b6
get-with-headers: fix stream modes under Windows
Patrick Mezard <pmezard@gmail.com>
parents:
514
diff
changeset
|
7 |
|
9ea5ac3258b6
get-with-headers: fix stream modes under Windows
Patrick Mezard <pmezard@gmail.com>
parents:
514
diff
changeset
|
8 |
try: |
9ea5ac3258b6
get-with-headers: fix stream modes under Windows
Patrick Mezard <pmezard@gmail.com>
parents:
514
diff
changeset
|
9 |
import msvcrt, os |
9ea5ac3258b6
get-with-headers: fix stream modes under Windows
Patrick Mezard <pmezard@gmail.com>
parents:
514
diff
changeset
|
10 |
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) |
9ea5ac3258b6
get-with-headers: fix stream modes under Windows
Patrick Mezard <pmezard@gmail.com>
parents:
514
diff
changeset
|
11 |
msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY) |
9ea5ac3258b6
get-with-headers: fix stream modes under Windows
Patrick Mezard <pmezard@gmail.com>
parents:
514
diff
changeset
|
12 |
except ImportError: |
9ea5ac3258b6
get-with-headers: fix stream modes under Windows
Patrick Mezard <pmezard@gmail.com>
parents:
514
diff
changeset
|
13 |
pass |
9ea5ac3258b6
get-with-headers: fix stream modes under Windows
Patrick Mezard <pmezard@gmail.com>
parents:
514
diff
changeset
|
14 |
|
513
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
15 |
headers = [h.lower() for h in sys.argv[3:]] |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
16 |
conn = httplib.HTTPConnection(sys.argv[1]) |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
17 |
conn.request("GET", sys.argv[2]) |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
18 |
response = conn.getresponse() |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
19 |
print response.status, response.reason |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
20 |
for h in headers: |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
21 |
if response.getheader(h, None) is not None: |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
22 |
print "%s: %s" % (h, response.getheader(h)) |
90b51a0fe1f0
Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
23 |
print |
566
986012d03ed3
test-hgweb-*: replace "XX years ago" by a fixed string in get-with-headers.py
Gilles Moris <gilles.moris@free.fr>
parents:
515
diff
changeset
|
24 |
data = response.read() |
986012d03ed3
test-hgweb-*: replace "XX years ago" by a fixed string in get-with-headers.py
Gilles Moris <gilles.moris@free.fr>
parents:
515
diff
changeset
|
25 |
data = re.sub('\d+ years', 'many years', data) |
986012d03ed3
test-hgweb-*: replace "XX years ago" by a fixed string in get-with-headers.py
Gilles Moris <gilles.moris@free.fr>
parents:
515
diff
changeset
|
26 |
sys.stdout.write(data) |
514
06b69a53ab0f
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
513
diff
changeset
|
27 |
|
06b69a53ab0f
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
513
diff
changeset
|
28 |
if 200 <= response.status <= 299: |
06b69a53ab0f
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
513
diff
changeset
|
29 |
sys.exit(0) |
06b69a53ab0f
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
513
diff
changeset
|
30 |
sys.exit(1) |