# HG changeset patch # User Dirkjan Ochtman # Date 1283951495 -7200 # Node ID 1121af2397618d17e288c4a849aba1edc59d7214 # Parent 045c9e8db0d863ce38d45340dd8f852958af314e tests: extend get-with-headers to support cache testing diff -r 045c9e8db0d8 -r 1121af239761 tests/get-with-headers.py --- 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) diff -r 045c9e8db0d8 -r 1121af239761 tests/test-hgweb --- 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