Open
Description
When i'm trying to move node to leftmost position using node.move_before nothing happens with tree.
i think it's because there's no left_sibling here: https://github.com/uralbash/sqlalchemy_mptt/blob/master/sqlalchemy_mptt/events.py#L362
Here's test code:
class MoveLeft(self):
def test_move_to_leftmost(self):
self.session.query(self.model).delete()
_level = self.model.get_default_level()
pk_column = self.model.get_pk_column()
self.session.add_all([
self.model(**{pk_column.name: 1}),
self.model(**{pk_column.name: 2, 'parent_id': 1}),
self.model(**{pk_column.name: 3, 'parent_id': 1}),
self.model(**{pk_column.name: 4, 'parent_id': 1}),
])
# initial tree:
# 1
# / | \
# 2 3 4
self.assertEqual(
[
(1, 1, 8, _level + 0, None, 1),
(2, 2, 3, _level + 1, 1, 1),
(3, 4, 5, _level + 1, 1, 1),
(4, 6, 7, _level + 1, 1, 1)
],
self.result.all()
)
# move 4 to left
node4 = self.session.query(self.model).filter(pk_column == 4).one()
node4.move_before("2")
# expected result:
# 1
# / | \
# 4 2 3
self.assertEqual(
[
(1, 1, 8, _level + 0, None, 1),
(2, 4, 5, _level + 0, 1, 1),
(3, 6, 7, _level + 0, 1, 1),
(4, 2, 3, _level + 0, 1, 1)
],
self.result.all()
)