Mercurial > p > roundup > code
diff test/test_liveserver.py @ 6539:f8df7fed18f6
issue2551175 - Make ETag content-encoding aware.
HTTP ETag headers now include a suffix (-gzip, -br, -zstd) indicating
the content-encoding used to send the data per rfc7232. Validate any
form of ETag by stripping a suffix (if present).
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Wed, 01 Dec 2021 19:52:54 -0500 |
| parents | 3c8322e3fe25 |
| children | c8f3ec942e29 |
line wrap: on
line diff
--- a/test/test_liveserver.py Tue Nov 30 00:21:55 2021 -0500 +++ b/test/test_liveserver.py Wed Dec 01 19:52:54 2021 -0500 @@ -439,6 +439,13 @@ self.assertDictEqual(json_dict, content) + # verify that ETag header ends with -gzip + try: + self.assertRegex(f.headers['ETag'], r'^"[0-9a-f]{32}-gzip"$') + except AttributeError: + # python2 no assertRegex so try substring match + self.assertEqual(33, f.headers['ETag'].rindex('-gzip"')) + # use dict comprehension to remove fields like date, # content-length etc. from f.headers. self.assertDictEqual({ key: value for (key, value) in f.headers.items() if key in expected }, expected) @@ -568,6 +575,13 @@ self.assertDictEqual(json_dict, content) + # verify that ETag header ends with -br + try: + self.assertRegex(f.headers['ETag'], r'^"[0-9a-f]{32}-br"$') + except AttributeError: + # python2 no assertRegex so try substring match + self.assertEqual(33, f.headers['ETag'].rindex('-br"')) + # use dict comprehension to remove fields like date, # content-length etc. from f.headers. self.assertDictEqual({ key: value for (key, value) in f.headers.items() if key in expected }, expected) @@ -714,6 +728,13 @@ self.assertDictEqual(json_dict, content) + # verify that ETag header ends with -zstd + try: + self.assertRegex(f.headers['ETag'], r'^"[0-9a-f]{32}-zstd"$') + except AttributeError: + # python2 no assertRegex so try substring match + self.assertEqual(33, f.headers['ETag'].rindex('-zstd"')) + # use dict comprehension to remove fields like date, # content-length etc. from f.headers. self.assertDictEqual({ key: value for (key, value) in f.headers.items() if key in expected }, expected)
