--- 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