Mercurial > hg
changeset 12182:1121af239761
tests: extend get-with-headers to support cache testing
author | Dirkjan Ochtman <dirkjan@ochtman.nl> |
---|---|
date | Wed, 08 Sep 2010 15:11:35 +0200 |
parents | 045c9e8db0d8 |
children | f64b416b0ac8 |
files | tests/get-with-headers.py tests/test-hgweb |
diffstat | 2 files changed, 35 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/get-with-headers.py Wed Sep 08 15:19:35 2010 +0200 +++ b/tests/get-with-headers.py Wed Sep 08 15:11:35 2010 +0200 @@ -12,18 +12,40 @@ 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() -sys.stdout.write(data) +twice = False +if '--twice' in sys.argv: + sys.argv.remove('--twice') + twice = True + +tag = None +def request(host, path, show): + + global tag + headers = {} + if tag: + headers['If-None-Match'] = tag -if 200 <= response.status <= 299: + conn = httplib.HTTPConnection(host) + conn.request("GET", path, None, headers) + response = conn.getresponse() + print response.status, 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)
--- a/tests/test-hgweb Wed Sep 08 15:19:35 2010 +0200 +++ b/tests/test-hgweb Wed Sep 08 15:11:35 2010 +0200 @@ -43,7 +43,7 @@ python -c "print len(file('access.log').readlines()), 'log lines written'" echo % static file -"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/static/style-gitweb.css' +"$TESTDIR/get-with-headers.py" --twice localhost:$HGPORT '/static/style-gitweb.css' echo % errors cat errors.log