Mercurial > p > roundup > code
view tools/roundup.public.pgp.key @ 8185:e84d4585b16d
fix(web): issue2551356. Add etag header for not-modified (304) request.
When a 304 is returned to a conditional request for a static file,
print an ETag for the response.
ETag was always sent with a 200 response.
This also adds initial support for if-none-match conditional requests
for static files.
Changes:
Refactors the if-modified-since code out to a method.
It moves a file stat call from serve_static_file to _serve_file
so that an etag can be generated by both serve_static_file and
serve_file which call _serve_file.
Tests added. This does not test the codepath where serve_file pulls
content from the database rather than from a local file on disk.
Test mocking _serve_file changed to account for 5th argument to serve_file
BREAKING CHANGE:
function signature for client.py-Client::_serve_file() now has 5 not 4
parameters (added etag param). Since this is a "hidden" method I am
not too worried about it.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Tue, 10 Dec 2024 16:06:13 -0500 |
| parents | 186956a87ad7 |
| children |
line wrap: on
line source
This is the public PGP/GPG key used to sign Roundup distributions. See the Security document at: https://www.roundup-tracker.org/docs/security.html for details on how to use it. -----BEGIN PGP PUBLIC KEY BLOCK----- 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 fJ6edN5eeKJuB9zvi+g= =GaWC -----END PGP PUBLIC KEY BLOCK-----
