# HG changeset patch # User Ludovic Chabant # Date 1432017163 25200 # Node ID 8e1e55ad35fb17c306650076273708f7ac42e5a0 # Parent c12ee6936b8c747972defd0902d3103fdec32242 linker: Fix error when trying to list non-existing children. Add unit tests. diff -r c12ee6936b8c -r 8e1e55ad35fb piecrust/data/linker.py --- a/piecrust/data/linker.py Mon May 18 19:29:49 2015 -0700 +++ b/piecrust/data/linker.py Mon May 18 23:32:43 2015 -0700 @@ -23,7 +23,7 @@ def children(self): self._linker._load() if self._linker._self_item is None: - return None + return [] return self._linker._self_item._linker_info.child_linker @property @@ -105,7 +105,7 @@ def __init__(self): self.name = None self.is_self = False - self.child_linker = None + self.child_linker = [] class _LinkedPage(object): @@ -244,7 +244,7 @@ def filter_directory_items(item): - return isinstance(item, linker) + return isinstance(item, Linker) def walk_linkers(linker, depth=0, max_depth=-1, filter_func=None): diff -r c12ee6936b8c -r 8e1e55ad35fb tests/bakes/test_linker.yaml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/bakes/test_linker.yaml Mon May 18 23:32:43 2015 -0700 @@ -0,0 +1,48 @@ +--- +in: + pages/foo.md: | + {%for c in family.children%} + {{c.title}} + {%endfor%} +outfiles: + foo.html: '' +--- +in: + pages/foo.md: | + {%for c in family.children-%} + {{c.title}} + {%endfor%} + pages/foo/one.md: | + --- + title: One + --- + pages/foo/two.md: | + --- + title: Two + --- +outfiles: + foo.html: | + One + Two +--- +in: + pages/foo.md: | + --- + title: Foo + --- + {%for c in family.siblings-%} + {{c.title}}{%if c.is_self%} SELFIE!{%endif%} + {%endfor%} + pages/bar.md: | + --- + title: Bar + --- + pages/other.md: | + --- + title: Other + --- +outfiles: + foo.html: | + Bar + Foo SELFIE! + Other