• Matthew Somerville's avatar
    Fixed #24240 -- Allowed GZipping a Unicode StreamingHttpResponse · 250aa7c3
    Matthew Somerville yazdı
    make_bytes() assumed that if the Content-Encoding header is set, then
    everything had already been dealt with bytes-wise, but in a streaming
    situation this was not necessarily the case.
    
    make_bytes() is only called when necessary when working with a
    StreamingHttpResponse iterable, but by that point the middleware has
    added the Content-Encoding header and thus make_bytes() tried to call
    bytes(value) (and dies). If it had been a normal HttpResponse,
    make_bytes() would have been called when the content was set, well
    before the middleware set the Content-Encoding header.
    
    This commit removes the special casing when Content-Encoding is set,
    allowing unicode strings to be encoded during the iteration before they
    are e.g. gzipped. This behaviour was added a long time ago for #4969 and
    it doesn't appear to be necessary any more, as everything is correctly
    made into bytes at the appropriate places.
    
    Two new tests, to show that supplying non-ASCII characters to a
    StreamingHttpResponse works fine normally, and when passed through the
    GZip middleware (the latter dies without the change to make_bytes()).
    Removes the test with a nonsense Content-Encoding and Unicode input - if
    this were to happen, it can still be encoded as bytes fine.
    250aa7c3
Adı
Son kayıt (commit)
Son güncelleme
.tx Loading commit data...
django Loading commit data...
docs Loading commit data...
extras Loading commit data...
scripts Loading commit data...
tests Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.hgignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.rst Loading commit data...
INSTALL Loading commit data...
LICENSE Loading commit data...
MANIFEST.in Loading commit data...
README.rst Loading commit data...
setup.cfg Loading commit data...
setup.py Loading commit data...