Пример #1
0
 def test_custom_pathlen(self):
     tbl = sqlalchemy.Table('tbl4', metadata,
         sqlalchemy.Column('id', sqlalchemy.Integer, primary_key=True),
         sqlalchemy.Column('pid', sqlalchemy.ForeignKey('tbl4.id'))
     )
     mpm = sqlamp.MPManager(tbl, steplen=1, pathlen=512)
     self.assertEqual(tbl.c.mp_path.type.impl.length, 512)
Пример #2
0
 def test_implicit_pk_fk(self):
     tbl = sqlalchemy.Table('tbl2', metadata,
         sqlalchemy.Column('id', sqlalchemy.Integer, primary_key=True),
         sqlalchemy.Column('pid', sqlalchemy.ForeignKey('tbl2.id'))
     )
     mpm = sqlamp.MPManager(tbl)
     self.assertEqual(tbl.c.id, mpm._mp_opts.pk_field)
     self.assertEqual(tbl.c.pid, mpm._mp_opts.parent_id_field)
Пример #3
0
 def test_custom_column_and_same_column_options(self):
     tbl = sqlalchemy.Table('tbl5', metadata,
         sqlalchemy.Column('id', sqlalchemy.Integer, primary_key=True),
         sqlalchemy.Column('pid', sqlalchemy.ForeignKey('tbl5.id')),
         sqlalchemy.Column('path', sqlamp.PathField(length=40),
                           nullable=False)
     )
     mpm = sqlamp.MPManager(tbl, pathlen=40)
     self.assertEqual(tbl.c.mp_path.type.impl.length, 40)
Пример #4
0
 def test_more_than_one_backref(self):
     tbl = sqlalchemy.Table('tbl3', metadata,
         sqlalchemy.Column('id', sqlalchemy.Integer, primary_key=True),
         sqlalchemy.Column('pid1', sqlalchemy.ForeignKey('tbl3.id')),
         sqlalchemy.Column('pid2', sqlalchemy.ForeignKey('tbl3.id')),
         sqlalchemy.Column('pid3', sqlalchemy.ForeignKey('tbl3.id'))
     )
     mpm = sqlamp.MPManager(tbl, parent_id_field='pid2')
     self.assertEqual(mpm._mp_opts.parent_id_field, tbl.c.pid2)
Пример #5
0
    class Cls(object):
        mp = sqlamp.MPManager(tbl, steplen=2)

        def __init__(self, **kwargs):
            for key, val in kwargs.items():
                setattr(self, key, val)

        def __repr__(self):
            return '<Cls %s(%s): parent=%s, path=%s, depth=%s>' % \
                   (self.name, self.id, self.parent_id,
                    self.mp_path, self.mp_depth)
Пример #6
0
 class Node(Cls):
     mp = sqlamp.MPManager(self.tbl, steplen=1)
Пример #7
0
 class AbstractNode(object):
     mp = sqlamp.MPManager(tbl_abstract)