#26591: Incorrect Manifest Keys for ManifestStaticFilesStorage on Windows
-------------------------------------+-------------------------------------
     Reporter:  dsanders11           |                    Owner:  nobody
         Type:  Bug                  |                   Status:  new
    Component:  contrib.staticfiles  |                  Version:  master
     Severity:  Normal               |               Resolution:
     Keywords:  staticfiles          |             Triage Stage:  Accepted
  manifest                           |
  manifeststaticfileststorage        |
  windows                            |
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Changes (by timgraham):

 * needs_better_patch:   => 0
 * needs_docs:   => 0
 * needs_tests:   => 0
 * stage:  Unreviewed => Accepted


Old description:

> The manifest created by `ManifestStaticFilesStorage` on Windows has some
> incorrect keys (haven't determined the pattern yet) where slashes are
> '\\' instead of '/'.
>
> This silently 'succeeds' because `HashedFilesMixin` will hash the
> original file on a 'cache miss' (in the case of
> `ManifestStaticFilesStorage` it's a manifest miss) and insert the result
> into the in-memory hashed files map.
>
> I've attached a patch for staticfiles_tests which checks that the
> manifest is the same in memory and on disk after the manifest tests
> finish (unless it was a test which cleared the in-memory version). It
> passes for the Linux build but fails on the Windows build, nicely
> illustrating the problem.

New description:

 The manifest created by `ManifestStaticFilesStorage` on Windows has some
 incorrect keys (haven't determined the pattern yet) where slashes are
 `'\\'` instead of '/'.

 This silently 'succeeds' because `HashedFilesMixin` will hash the original
 file on a 'cache miss' (in the case of `ManifestStaticFilesStorage` it's a
 manifest miss) and insert the result into the in-memory hashed files map.

 I've attached a patch for staticfiles_tests which checks that the manifest
 is the same in memory and on disk after the manifest tests finish (unless
 it was a test which cleared the in-memory version). It passes for the
 Linux build but fails on the Windows build, nicely illustrating the
 problem.

--

Comment:

 The final version of the patch shouldn't put the assertions in
 `tearDown()`, if possible.

--
Ticket URL: <https://code.djangoproject.com/ticket/26591#comment:1>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/068.db833c6b6c2a267f09cac6b98d3ec6e0%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to