changeset 402:043b9d8304c7 2.0.0a11

linker: Fix linker returning the wrong value for `is_dir` in some situations.
author Ludovic Chabant <ludovic@chabant.com>
date Mon, 18 May 2015 23:45:51 -0700
parents 8e1e55ad35fb
children 563e2e84ef6e
files piecrust/data/linker.py
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/piecrust/data/linker.py	Mon May 18 23:32:43 2015 -0700
+++ b/piecrust/data/linker.py	Mon May 18 23:45:51 2015 -0700
@@ -47,7 +47,7 @@
         self.name = page._linker_info.name
         self.is_self = page._linker_info.is_self
         self.children = page._linker_info.child_linker
-        self.is_dir = (self.children is not None)
+        self.is_dir = page._linker_info.is_dir
         self.is_page = True
 
         self.mapLoader('*', self._linkerChildLoader)
@@ -104,6 +104,7 @@
 class _LinkerInfo(object):
     def __init__(self):
         self.name = None
+        self.is_dir = False
         self.is_self = False
         self.child_linker = []
 
@@ -232,10 +233,12 @@
                     # The current item is a directory. The existing item
                     # should be a page.
                     existing._linker_info.child_linker = item
+                    existing._linker_info.is_dir = True
                 else:
                     # The current item is a page. The existing item should
                     # be a directory.
                     item._linker_info.child_linker = existing
+                    item._linker_info.is_dir = True
                     self._items[name] = item