view tests/get-with-headers.py @ 16264:0628290d98df stable

tests: ignore git's output in test-subrepo-git.t git version 1.7.9.1 makes the testsuite fail with: @@ -482,7 +482,17 @@ Sticky repository, update --clean $ hg update --clean tip - Previous HEAD position was aa84837... f + Warning: you are leaving 2 commits behind, not connected to + any of your branches: + + aa84837 f + 126f2a1 gg + + If you want to keep them by creating a new branch, this may be a good time + to do so with: + + git branch new_branch_name aa84837ccfbdfedcdcdeeedc309d73e6eb069edc + HEAD is now at 32a3438... fff 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg id -n ERROR: test-subrepo-git.t output changed
author Javi Merino <cibervicho@gmail.com>
date Thu, 15 Mar 2012 23:02:31 +0000
parents bd98796c0b6f
children 953faba28e91
line wrap: on
line source

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

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

twice = False
if '--twice' in sys.argv:
    sys.argv.remove('--twice')
    twice = True

reasons = {'Not modified': 'Not Modified'} # python 2.4

tag = None
def request(host, path, show):

    global tag
    headers = {}
    if tag:
        headers['If-None-Match'] = tag

    conn = httplib.HTTPConnection(host)
    conn.request("GET", path, None, headers)
    response = conn.getresponse()
    print response.status, reasons.get(response.reason, response.reason)
    for h in [h.lower() for h in show]:
        if response.getheader(h, None) is not None:
            print "%s: %s" % (h, response.getheader(h))

    print
    data = response.read()
    sys.stdout.write(data)

    if twice and response.getheader('ETag', None):
        tag = response.getheader('ETag')

    return response.status

status = request(sys.argv[1], sys.argv[2], sys.argv[3:])
if twice:
    status = request(sys.argv[1], sys.argv[2], sys.argv[3:])

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