comparison piecrust/data/linker.py @ 401:8e1e55ad35fb

linker: Fix error when trying to list non-existing children. Add unit tests.
author Ludovic Chabant <ludovic@chabant.com>
date Mon, 18 May 2015 23:32:43 -0700
parents 4c9eab0e283b
children 043b9d8304c7
comparison
equal deleted inserted replaced
400:c12ee6936b8c 401:8e1e55ad35fb
21 21
22 @property 22 @property
23 def children(self): 23 def children(self):
24 self._linker._load() 24 self._linker._load()
25 if self._linker._self_item is None: 25 if self._linker._self_item is None:
26 return None 26 return []
27 return self._linker._self_item._linker_info.child_linker 27 return self._linker._self_item._linker_info.child_linker
28 28
29 @property 29 @property
30 def root(self): 30 def root(self):
31 return self._linker.root 31 return self._linker.root
103 103
104 class _LinkerInfo(object): 104 class _LinkerInfo(object):
105 def __init__(self): 105 def __init__(self):
106 self.name = None 106 self.name = None
107 self.is_self = False 107 self.is_self = False
108 self.child_linker = None 108 self.child_linker = []
109 109
110 110
111 class _LinkedPage(object): 111 class _LinkedPage(object):
112 def __init__(self, page): 112 def __init__(self, page):
113 self._page = page 113 self._page = page
242 def filter_page_items(item): 242 def filter_page_items(item):
243 return not isinstance(item, Linker) 243 return not isinstance(item, Linker)
244 244
245 245
246 def filter_directory_items(item): 246 def filter_directory_items(item):
247 return isinstance(item, linker) 247 return isinstance(item, Linker)
248 248
249 249
250 def walk_linkers(linker, depth=0, max_depth=-1, filter_func=None): 250 def walk_linkers(linker, depth=0, max_depth=-1, filter_func=None):
251 linker._load() 251 linker._load()
252 for item in linker._items.values(): 252 for item in linker._items.values():