tests/get-with-headers.py
author Christian Ebert <blacktrash@gmx.net>
Tue, 16 Mar 2010 22:28:58 +0100
changeset 702 c118a9c5ca24
parent 567 fd52c78e1aa7
child 717 43efa35c5eed
permissions -rwxr-xr-x
Make kwdemo less verbose 1) Set the branchname always silently with dirstate.setbranch(). We create a branch so that testing the {branches} template does not come up empty. But kwdemo is hardly the place to inform the user by inference why {branches} is empty on the default branch. "demobranch" is ascii and cannot be changed, so using the internal command instead of commands.branch() is safe. 2) Do not show full path to temporary directory (distracting long lines on Mac OS X). 3) No special debug output. Output only related to keyword, no internals like unsetting of commit hooks etc.

#!/usr/bin/env python

"""This does HTTP GET requests given a host:port and path and returns
a subset of the headers plus the body of the result."""

import httplib, sys, re

try:
    import msvcrt, os
    msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
    msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
except ImportError:
    pass

headers = [h.lower() for h in sys.argv[3:]]
conn = httplib.HTTPConnection(sys.argv[1])
conn.request("GET", sys.argv[2])
response = conn.getresponse()
print response.status, response.reason
for h in headers:
    if response.getheader(h, None) is not None:
        print "%s: %s" % (h, response.getheader(h))
print
data = response.read()
data = re.sub('\d+ years', 'many years', data)
sys.stdout.write(data)

if 200 <= response.status <= 299:
    sys.exit(0)
sys.exit(1)