cyberdelia/django-pipeline — Issue #75: collectstatic fails when using PipelineStorage
Author: chipx86
Created: 2012-02-22 11:10:04+00:00
State: open

When using Pipeline 1.2 beta (beta 2 and Git from 5 minutes ago) and Django 1.4b1 and setting:

STATICFILES_STORAGE = 'pipeline.storage.PipelineStorage'

Running collectstatic will fail with a "ValueError: too many values to unpack"

The collectstatic management command is expecting the result of post_process() to be a tuple of 3 entries (original_path, processed_path, is_processed). Instead, it gets the dictionary of file paths generated in PiplineStorage.post_process.

It looks as if this is sort of expecting to use a post_process from PipelineStorage's parent class, if available, but that doesn't actually exist (at least in 1.4b1) in that class or any parent class. The fallback of returning the paths dictionary instead of a tuple seems to be wrong.

For debugging purposes, here's the full traceback:

```
Traceback (most recent call last):
File "./reviewboard/manage.py", line 178, in
execute_manager(settings)
File "/usr/local/lib/python2.6/dist-packages/Django-1.4b1-py2.6.egg/django/core/management/__init__.py", line 459, in execute_manager
utility.execute()
File "/usr/local/lib/python2.6/dist-packages/Django-1.4b1-py2.6.egg/django/core/management/__init__.py", line 382, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.6/dist-packages/Django-1.4b1-py2.6.egg/django/core/management/base.py", line 196, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.6/dist-packages/Django-1.4b1-py2.6.egg/django/core/management/base.py", line 232, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.6/dist-packages/Django-1.4b1-py2.6.egg/django/core/management/base.py", line 371, in handle
return self.handle_noargs(**options)
File "/usr/local/lib/python2.6/dist-packages/Django-1.4b1-py2.6.egg/django/contrib/staticfiles/management/commands/collectstatic.py", line 162, in handle_noargs
collected = self.collect()
File "/usr/local/lib/python2.6/dist-packages/Django-1.4b1-py2.6.egg/django/contrib/staticfiles/management/commands/collectstatic.py", line 119, in collect
for original_path, processed_path, processed in processor:
ValueError: too many values to unpack
```