tests/get-with-headers.py
author Christian Ebert <blacktrash@gmx.net>
Wed, 05 Aug 2009 16:56:36 +0200
changeset 634 f2fa2ae4a4c9
parent 567 fd52c78e1aa7
child 717 43efa35c5eed
permissions -rwxr-xr-x
Remove "help keyword" from test Testing help output does not make sense as we have no way to check for errors in content which would be the only reasonable test here.

#!/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)