rdobuilder c17c08
From ac70fbfb7f8349e5c1150f40bf1d21ba635d0cb8 Mon Sep 17 00:00:00 2001
rdobuilder c17c08
From: Chirag Jadwani <cbjadwani@elance-odesk.com>
rdobuilder c17c08
Date: Fri, 29 Aug 2014 13:15:35 +0530
rdobuilder c17c08
Subject: [PATCH] Fix AttributeError in offline compression
rdobuilder c17c08
rdobuilder c17c08
---
rdobuilder c17c08
 compressor/offline/django.py                                         | 2 ++
rdobuilder c17c08
 .../test_block_super_base_compressed/test_compressor_offline.html    | 5 +++++
rdobuilder c17c08
 2 files changed, 7 insertions(+)
rdobuilder c17c08
rdobuilder c17c08
diff --git a/compressor/offline/django.py b/compressor/offline/django.py
rdobuilder c17c08
index 3986562..b326093 100644
rdobuilder c17c08
--- a/compressor/offline/django.py
rdobuilder c17c08
+++ b/compressor/offline/django.py
rdobuilder c17c08
@@ -54,6 +54,8 @@ def remove_block_nodes(nodelist, block_stack, block_context):
rdobuilder c17c08
                 if not block_stack:
rdobuilder c17c08
                     continue
rdobuilder c17c08
                 node = block_context.get_block(block_stack[-1].name)
rdobuilder c17c08
+                if not node:
rdobuilder c17c08
+                    continue
rdobuilder c17c08
         if isinstance(node, BlockNode):
rdobuilder c17c08
             expanded_block = expand_blocknode(node, block_stack, block_context)
rdobuilder c17c08
             new_nodelist.extend(expanded_block)
rdobuilder c17c08
diff --git a/compressor/tests/test_templates/test_block_super_base_compressed/test_compressor_offline.html b/compressor/tests/test_templates/test_block_super_base_compressed/test_compressor_offline.html
rdobuilder c17c08
index 01382ec..10097c1 100644
rdobuilder c17c08
--- a/compressor/tests/test_templates/test_block_super_base_compressed/test_compressor_offline.html
rdobuilder c17c08
+++ b/compressor/tests/test_templates/test_block_super_base_compressed/test_compressor_offline.html
rdobuilder c17c08
@@ -5,4 +5,9 @@
rdobuilder c17c08
     <script type="text/javascript">
rdobuilder c17c08
         alert("this alert shouldn't be alone!");
rdobuilder c17c08
     </script>
rdobuilder c17c08
+    {% block orphan %}
rdobuilder c17c08
+        {{ block.super }}
rdobuilder c17c08
+        An 'orphan' block that refers to a non-existent super block.
rdobuilder c17c08
+        Contents of this block are ignored.
rdobuilder c17c08
+    {% endblock %}
rdobuilder c17c08
 {% endspaceless %}{% endblock %}