99
1010"""
1111SQLAlchemy nested sets mixin
12+
13+ .. testsetup::
14+
15+ engine = create_engine('sqlite:///:memory:')
16+ session = Session(bind=engine)
17+
1218"""
1319# SQLAlchemy
1420from sqlalchemy import Column , Integer , ForeignKey , asc , desc
@@ -26,7 +32,7 @@ class BaseNestedSets(object):
2632
2733 Example:
2834
29- .. code ::
35+ .. testcode ::
3036
3137 from sqlalchemy import Boolean, Column, create_engine, Integer
3238 from sqlalchemy.ext.declarative import declarative_base
@@ -45,6 +51,25 @@ class Tree(Base, BaseNestedSets):
4551
4652 def __repr__(self):
4753 return "<Node (%s)>" % self.id
54+
55+ .. testcode::
56+ :hide:
57+
58+ Base.metadata.create_all(engine)
59+ node = Tree()
60+ session.add(node)
61+ session.flush()
62+ node7 = Tree(parent=node)
63+ session.add(node7)
64+ session.flush()
65+ node8 = Tree(parent=node7)
66+ session.add(node8)
67+ session.flush()
68+ node10 = Tree(parent=node7)
69+ session.add(node10)
70+ session.flush()
71+ node11 = Tree(parent=node10)
72+ session.add(node11)
4873 """
4974
5075 @classmethod
@@ -254,12 +279,12 @@ def get_tree(cls, session=None, json=False, json_fields=None, query=None):
254279 query (function): it takes :class:`sqlalchemy.orm.query.Query`
255280 object as an argument, and returns in a modified form
256281
257- ::
282+ .. testcode ::
258283
259284 def query(nodes):
260285 return nodes.filter(node.__class__.tree_id.is_(node.tree_id))
261286
262- node.get_tree(session=DBSession , json=True, query=query)
287+ node.get_tree(session=session , json=True, query=query)
263288
264289 Example:
265290
@@ -312,7 +337,9 @@ def drilldown_tree(self, session=None, json=False, json_fields=None):
312337
313338 For example:
314339
315- node7.drilldown_tree()
340+ .. testcode::
341+
342+ node7.drilldown_tree()
316343
317344 .. code::
318345
@@ -346,7 +373,9 @@ def path_to_root(self, session=None, order=desc):
346373
347374 For example:
348375
349- node11.path_to_root()
376+ .. testcode::
377+
378+ node11.path_to_root()
350379
351380 .. code::
352381
@@ -382,7 +411,9 @@ def get_siblings(self, include_self=False, session=None):
382411
383412 For example:
384413
385- node10.get_siblings() -> [Node(8)]
414+ .. testcode::
415+
416+ node10.get_siblings() #-> [Node(8)]
386417
387418 Only one node is sibling of node10
388419
@@ -420,7 +451,9 @@ def get_children(self, session=None):
420451
421452 For example:
422453
423- node7.get_children() -> [Node(8), Node(10)]
454+ .. testcode::
455+
456+ node7.get_children() #-> [Node(8), Node(10)]
424457
425458 .. code::
426459
0 commit comments