Source code for sqlalchemy_mptt.tests.cases.get_node
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# vim:fenc=utf-8
#
# Copyright © 2015 uralbash <root@uralbash.ru>
#
# Distributed under terms of the MIT license.
[docs]
class GetNodes(object):
[docs]
def test_get_siblings(self):
"""
Get siblings of node
initial state of the tree :mod:`sqlalchemy_mptt.tests.add_mptt_tree`
.. code::
level Nested sets example
1 1(1)22 (12)
_______________|___________________
| | |
2 2(2)5 6(4)11 12(7)21
| ^ ^
3 3(3)4 7(5)8 9(6)10 13(8)16 17(10)20
| |
4 14(9)15 18(11)19
"""
node10 = (
self.session.query(self.model)
.filter(self.model.get_pk_column() == 10)
.one()
)
points = (
self.session.query(self.model).filter(self.model.get_pk_column() == 8).all()
)
self.assertEqual(points, node10.get_siblings().all()) # flake8: noqa
node9 = (
self.session.query(self.model).filter(self.model.get_pk_column() == 9).one()
)
self.assertEqual([], node9.get_siblings().all()) # flake8: noqa
node1 = (
self.session.query(self.model).filter(self.model.get_pk_column() == 1).one()
)
points = (
self.session.query(self.model).filter(self.model.get_pk_column() == 12).all()
)
self.assertEqual(points, node1.get_siblings().all())
[docs]
def test_get_children(self):
"""
Get children of node
initial state of the tree :mod:`sqlalchemy_mptt.tests.add_mptt_tree`
.. code::
level Nested sets example
1 1(1)22
_______________|___________________
| | |
2 2(2)5 6(4)11 12(7)21
| ^ ^
3 3(3)4 7(5)8 9(6)10 13(8)16 17(10)20
| |
4 14(9)15 18(11)19
"""
node7 = (
self.session.query(self.model).filter(self.model.get_pk_column() == 7).one()
)
points = self.session.query(self.model).filter(self.model.parent_id == 7).all()
self.assertEqual(points, node7.get_children().all()) # flake8: noqa
node9 = (
self.session.query(self.model).filter(self.model.get_pk_column() == 9).one()
)
self.assertEqual([], node9.get_children().all()) # flake8: noqa