Exemple #1
0
        def define_tables(self, metadata):
            global User, Address
            Base = decl.declarative_base(metadata=metadata)

            class User(Base, ComparableEntity):
                __tablename__ = 'users'
                id = Column(Integer, primary_key=True)
                name = Column(String(50))
            
            class Address(Base, ComparableEntity):
                __tablename__ = 'addresses'
                id = Column(Integer, primary_key=True)
                email = Column(String(50))
                user_id = Column(Integer, ForeignKey('users.id'))
                if inline:
                    if stringbased:
                        user = relation("User", primaryjoin="User.id==Address.user_id", backref="addresses")
                    else:
                        user = relation(User, primaryjoin=User.id==user_id, backref="addresses")
            
            if not inline:
                compile_mappers()
                if stringbased:
                    Address.user = relation("User", primaryjoin="User.id==Address.user_id", backref="addresses")
                else:
                    Address.user = relation(User, primaryjoin=User.id==Address.user_id, backref="addresses")
Exemple #2
0
    def setup_mappers(self):
        global Session
        Session = scoped_session(sessionmaker())

        mapper(User, users, properties={
            'addresses':relation(Address, backref='user', order_by=addresses.c.id)
        })
        mapper(Address, addresses)

        compile_mappers()
Exemple #3
0
    def test_custom_inh(self):
        class Foo(Base):
            __tablename__ = 'foo'
            id = Column('id', Integer, primary_key=True)

        class Bar(Foo):
            __tablename__ = 'bar'
            id = Column('id', Integer, primary_key=True)
            foo_id = Column('foo_id', Integer)
            __mapper_args__ = {'inherit_condition':foo_id==Foo.id}
        
        # compile succeeds because inherit_condition is honored
        compile_mappers()
Exemple #4
0
    def setup_mappers(self):
        global Session
        Session = scoped_session(sessionmaker())

        mapper(User,
               users,
               properties={
                   'addresses':
                   relation(Address, backref='user', order_by=addresses.c.id)
               })
        mapper(Address, addresses)

        compile_mappers()
Exemple #5
0
    def test_string_dependency_resolution_in_backref(self):
        class User(Base, ComparableEntity):
            __tablename__ = 'users'
            id = Column(Integer, primary_key=True)
            name = Column(String(50))
            addresses = relation("Address", 
                primaryjoin="User.id==Address.user_id", 
                backref="user"
                )

        class Address(Base, ComparableEntity):
            __tablename__ = 'addresses'
            id = Column(Integer, primary_key=True)
            email = Column(String(50))
            user_id = Column(Integer, ForeignKey('users.id'))  

        compile_mappers()
        eq_(str(User.addresses.property.primaryjoin), str(Address.user.property.primaryjoin))