예제 #1
0
    def test_documented_initial_insert(self):
        from sqlalchemy_mptt import tree_manager

        engine = create_engine('sqlite:///:memory:')
        Session = mptt_sessionmaker(sessionmaker(bind=engine))
        session = Session()
        Base.metadata.create_all(engine)

        tree_manager.register_events(remove=True)  # Disable MPTT events

        _tree_id = 'tree1'

        for node_id, parent_id in [(1, None), (2, 1), (3, 1), (4, 2)]:
            item = Tree(
                id=node_id,
                parent_id=parent_id,
                left=0,
                right=0,
                tree_id=_tree_id
            )
            session.add(item)
        session.commit()

        tree_manager.register_events()  # enabled MPTT events back
        Tree.rebuild_tree(
            session,
            _tree_id
        )  # rebuild lft, rgt value automatically
예제 #2
0
 def test_remove(self):
     from sqlalchemy_mptt import tree_manager
     tree_manager.register_events(remove=True)
     self.assertFalse(
         contains(
             Tree,
             'before_insert',
             tree_manager.before_insert
         )
     )
     self.assertFalse(
         contains(
             Tree,
             'before_update',
             tree_manager.before_update
         )
     )
     self.assertFalse(
         contains(
             Tree,
             'before_delete',
             tree_manager.before_delete
         )
     )
     tree_manager.register_events()
예제 #3
0
 def test_register(self):
     from sqlalchemy_mptt import tree_manager
     tree_manager.register_events()
     self.assertTrue(contains(BaseNestedSets, 'before_insert',
                              tree_manager.before_insert))
     self.assertTrue(contains(BaseNestedSets, 'before_update',
                              tree_manager.before_update))
     self.assertTrue(contains(BaseNestedSets, 'before_delete',
                              tree_manager.before_delete))
예제 #4
0
 def test_remove(self):
     from sqlalchemy_mptt import tree_manager
     tree_manager.register_events(remove=True)
     self.assertFalse(contains(Tree, 'before_insert',
                               tree_manager.before_insert))
     self.assertFalse(contains(Tree, 'before_update',
                               tree_manager.before_update))
     self.assertFalse(contains(Tree, 'before_delete',
                               tree_manager.before_delete))
     tree_manager.register_events()