示例#1
0
    def setUp(self):
        from sqlalchemy.ext.declarative import declarative_base
        Base = declarative_base(metadata=sa.MetaData('sqlite:///:memory:'))
        Base.query = tws.transactional_session().query_property()

        class DBTestCls1(Base):
            __tablename__ = 'Test'
            id = sa.Column(sa.Integer, primary_key=True)
            name = sa.Column(sa.String(50))
        class DBTestCls2(Base):
            __tablename__ = 'Test2'
            id = sa.Column(sa.String, primary_key=True)
        class DBTestCls3(Base):
            __tablename__ = 'Test3'
            id1 = sa.Column(sa.Integer, primary_key=True)
            id2 = sa.Column(sa.Integer, primary_key=True)

        self.DBTestCls1 = DBTestCls1
        self.DBTestCls2 = DBTestCls2
        self.DBTestCls3 = DBTestCls3
    
        Base.metadata.create_all()

        session = sa.orm.sessionmaker()()
        self.session = session
        session.add(self.DBTestCls1(id=1))
        session.add(self.DBTestCls2(id='bob'))
        session.commit()

        testapi.setup()
示例#2
0
    def setUp(self):
        import elixir as el
        self.session = el.session = tws.transactional_session()
        el.metadata = sa.MetaData('sqlite:///:memory:')

        class DBTestCls1(el.Entity):
            name = el.Field(el.String)
            some_number = el.Field(el.Integer, default=2)

        class DBTestCls2(el.Entity):
            nick = el.Field(el.String)
            other_id = el.Field(el.Integer, colname='other')
            other = el.ManyToOne(DBTestCls1,
                                 field=other_id,
                                 backref='others')

        self.DBTestCls1 = DBTestCls1
        self.DBTestCls2 = DBTestCls2

        el.setup_all()
        el.metadata.create_all()
        foo = self.DBTestCls1(id=1, name='foo')
        bob = self.DBTestCls2(id=1, nick='bob', other=foo)
        george = self.DBTestCls2(id=2, nick='george')

        testapi.setup()
示例#3
0
    def setUp(self):
        from sqlalchemy.ext.declarative import declarative_base
        Base = declarative_base(metadata=sa.MetaData('sqlite:///:memory:'))
        Base.query = tws.transactional_session().query_property()

        class DBTestCls1(Base):
            __tablename__ = 'Test'
            id = sa.Column(sa.Integer, primary_key=True)
            name = sa.Column(sa.String(50))

        class DBTestCls2(Base):
            __tablename__ = 'Test2'
            id = sa.Column(sa.String, primary_key=True)

        class DBTestCls3(Base):
            __tablename__ = 'Test3'
            id1 = sa.Column(sa.Integer, primary_key=True)
            id2 = sa.Column(sa.Integer, primary_key=True)

        self.DBTestCls1 = DBTestCls1
        self.DBTestCls2 = DBTestCls2
        self.DBTestCls3 = DBTestCls3

        Base.metadata.create_all()

        session = sa.orm.sessionmaker()()
        self.session = session
        session.add(self.DBTestCls1(id=1))
        session.add(self.DBTestCls2(id='bob'))
        session.commit()

        testapi.setup()
示例#4
0
    def setUp(self):
        from sqlalchemy.ext.declarative import declarative_base
        self.session = tws.transactional_session()
        Base = declarative_base(metadata=sa.MetaData('sqlite:///:memory:'))
        Base.query = self.session.query_property()

        class DBTestCls1(Base):
            __tablename__ = 'Test'
            id = sa.Column(sa.Integer, primary_key=True)
            name = sa.Column(sa.String(50))
        class DBTestCls2(Base):
            __tablename__ = 'Test2'
            id = sa.Column(sa.Integer, primary_key=True)
            nick = sa.Column(sa.String)
            other_id = sa.Column(sa.Integer, sa.ForeignKey('Test.id'))
            other = sa.orm.relation(DBTestCls1, backref=sa.orm.backref('others'))
    
        Base.metadata.create_all()
        
        self.DBTestCls1 = DBTestCls1
        self.DBTestCls2 = DBTestCls2

        foo = self.DBTestCls1(id=1, name='foo')
        self.session.add(foo)

        bob = self.DBTestCls2(id=1, nick='bob')
        bob.other = foo
        self.session.add(bob)
        george = self.DBTestCls2(id=2, nick='george')
        self.session.add(george)

        transaction.commit()

        testapi.setup()
示例#5
0
    def setUp(self):
        self.session = el.session = tws.transactional_session()
        el.metadata = sa.MetaData('sqlite:///:memory:')

        class DBTestCls1(el.Entity):
            name = el.Field(el.String)
            some_number = el.Field(el.Integer, default=2)

        class DBTestCls2(el.Entity):
            nick = el.Field(el.String)
            other_id = el.Field(el.Integer, colname='other')
            other = el.ManyToOne(DBTestCls1, field=other_id, backref='others')

        class DBTestCls3(el.Entity):
            surname = el.Field(el.String)
            roles = el.ManyToMany('DBTestCls4')

        class DBTestCls4(el.Entity):
            rolename = el.Field(el.String)
            users = el.ManyToMany('DBTestCls3')

        class DBTestCls5(el.Entity):
            account_name = el.Field(el.String, required=True)
            user = el.OneToOne('DBTestCls6', inverse='account')

        class DBTestCls6(el.Entity):
            name = el.Field(el.String)
            account_id = el.Field(el.Integer, required=False)
            account = el.ManyToOne(DBTestCls5,
                                   field=account_id,
                                   inverse='user',
                                   uselist=False)

        self.DBTestCls1 = DBTestCls1
        self.DBTestCls2 = DBTestCls2
        self.DBTestCls3 = DBTestCls3
        self.DBTestCls4 = DBTestCls4
        self.DBTestCls5 = DBTestCls5
        self.DBTestCls6 = DBTestCls6

        el.setup_all()
        el.metadata.create_all()
        foo = self.DBTestCls1(id=1, name='foo')
        bob = self.DBTestCls2(id=1, nick='bob', other=foo)
        george = self.DBTestCls2(id=2, nick='george')
        fred = self.DBTestCls3(id=1, surname='fred')
        admin = self.DBTestCls4(id=1, rolename='admin')
        fred.roles.append(admin)
        account1 = self.DbTestCls5(id=1, account_name='account1')
        bob1 = self.DbTestCls6(id=1, name='bob1', account_id=1)

        testapi.setup()
        self.admin_role = admin
示例#6
0
    def setUp(self):
        self.session = el.session = tws.transactional_session()
        el.metadata = sa.MetaData('sqlite:///:memory:')

        class DBTestCls1(el.Entity):
            name = el.Field(el.String)
            some_number = el.Field(el.Integer, default=2)

        class DBTestCls2(el.Entity):
            nick = el.Field(el.String)
            other_id = el.Field(el.Integer, colname='other')
            other = el.ManyToOne(DBTestCls1,
                                 field=other_id,
                                 backref='others')

        class DBTestCls3(el.Entity):
            surname = el.Field(el.String)
            roles = el.ManyToMany('DBTestCls4')

        class DBTestCls4(el.Entity):
            rolename = el.Field(el.String)
            users = el.ManyToMany('DBTestCls3')

        class DBTestCls5(el.Entity):
            account_name = el.Field(el.String, required=True)
            user = el.OneToOne('DBTestCls6', inverse='account')

        class DBTestCls6(el.Entity):
            name = el.Field(el.String)
            account_id = el.Field(el.Integer, required=False)
            account = el.ManyToOne(DBTestCls5, field=account_id, inverse='user', uselist=False)

        self.DBTestCls1 = DBTestCls1
        self.DBTestCls2 = DBTestCls2
        self.DBTestCls3 = DBTestCls3
        self.DBTestCls4 = DBTestCls4
        self.DBTestCls5 = DBTestCls5
        self.DBTestCls6 = DBTestCls6

        el.setup_all()
        el.metadata.create_all()
        foo = self.DBTestCls1(id=1, name='foo')
        bob = self.DBTestCls2(id=1, nick='bob', other=foo)
        george = self.DBTestCls2(id=2, nick='george')
        fred = self.DBTestCls3(id=1, surname='fred')
        admin = self.DBTestCls4(id=1, rolename='admin')
        fred.roles.append(admin)
        account1 = self.DbTestCls5(id=1, account_name='account1')
        bob1 = self.DbTestCls6(id=1, name='bob1', account_id=1)

        testapi.setup()
        self.admin_role = admin
示例#7
0
    def setUp(self):
        from sqlalchemy.ext.declarative import declarative_base
        from sqlalchemy.orm import mapper
        from sqlalchemy.sql import join

        from sqlalchemy import Table, Column, Integer, String, ForeignKey

        self.session = tws.transactional_session()
        Base = declarative_base(metadata=sa.MetaData('sqlite:///:memory:'))
        Base.query = self.session.query_property()

        users_table = Table(
            'users',
            Base.metadata,
            Column('user_id', Integer, primary_key=True),
            Column('name', String(40)),
        )
        addresses_table = Table(
            'addresses',
            Base.metadata,
            Column('address_id', Integer, primary_key=True),
            Column('user_id', Integer, ForeignKey('users.user_id')),
            Column('place', String(40)),
        )

        class DBTestCls1(object):
            pass

        j = join(users_table, addresses_table)

        mapper(DBTestCls1,
               j,
               properties={
                   'user_id':
                   [users_table.c.user_id, addresses_table.c.user_id]
               })

        Base.metadata.create_all()

        self.DBTestCls1 = DBTestCls1

        transaction.commit()

        testapi.setup()
示例#8
0
    def setup(self):
        self.session = tws.transactional_session()
        Base = declarative_base(metadata=sa.MetaData('sqlite:///:memory:'))
        Base.query = self.session.query_property()

        class DbTestCls1(Base):
            __tablename__ = 'Test'
            id = sa.Column(sa.Integer, primary_key=True)
            name = sa.Column(sa.String(50))
            def __unicode__(self):
                return self.name
        class DbTestCls2(Base):
            __tablename__ = 'Test2'
            id = sa.Column(sa.Integer, primary_key=True)
            nick = sa.Column(sa.String(50))
            other_id = sa.Column(sa.Integer, sa.ForeignKey('Test.id'))
            other = sa.orm.relation(DbTestCls1, backref=sa.orm.backref('others'))
            def __unicode__(self):
                return self.nick
        class DbTestCls3(Base):
            __tablename__ = 'Test3'
            id1 = sa.Column(sa.Integer, primary_key=True)
            id2 = sa.Column(sa.Integer, primary_key=True)

        self.DbTestCls1 = DbTestCls1
        self.DbTestCls2 = DbTestCls2
        self.DbTestCls3 = DbTestCls3

        Base.metadata.create_all()

        foo1 = self.DbTestCls1(id=1, name='foo1')
        self.session.add(foo1)
        self.session.add(self.DbTestCls1(id=2, name='foo2'))
        self.session.add(self.DbTestCls2(id=1, nick='bob1'))
        self.session.add(self.DbTestCls2(id=2, nick='bob2'))
        bob3 = self.DbTestCls2(id=3, nick='bob3')
        foo1.others.append(bob3)
        self.session.add(bob3)
        assert(self.DbTestCls1.query.first().others[0] == bob3)
        transaction.commit()

        return super(SQLABase, self).setup()
示例#9
0
    def setUp(self):
        from sqlalchemy.ext.declarative import declarative_base
        from sqlalchemy.orm import mapper
        from sqlalchemy.sql import join

        from sqlalchemy import Table, Column, Integer, String, ForeignKey

        self.session = tws.transactional_session()
        Base = declarative_base(metadata=sa.MetaData('sqlite:///:memory:'))
        Base.query = self.session.query_property()

        users_table = Table('users', Base.metadata,
                Column('user_id', Integer, primary_key=True),
                Column('name', String(40)),
        )
        addresses_table = Table('addresses', Base.metadata,
                Column('address_id', Integer, primary_key=True),
                Column('user_id', Integer, ForeignKey('users.user_id')),
                Column('place', String(40)),
        )
        
        class DBTestCls1(object):
            pass

        j = join(users_table, addresses_table)

        mapper(DBTestCls1, j, properties={
            'user_id': [users_table.c.user_id, addresses_table.c.user_id]
        })
    
        Base.metadata.create_all()
        
        self.DBTestCls1 = DBTestCls1

        transaction.commit()

        testapi.setup()
示例#10
0
    def setup(self):
        el.metadata = sa.MetaData('sqlite:///:memory:')
        el.session = tws.transactional_session()

        class DbTestCls1(el.Entity):
            name = el.Field(el.String)
            def __unicode__(self):
                return self.name

        class DbTestCls2(el.Entity):
            nick = el.Field(el.String)
            other_id = el.Field(el.Integer)
            other = el.ManyToOne(DbTestCls1, field=other_id, backref='others')
            def __unicode__(self):
                return self.nick

        class DbTestCls3(el.Entity):
            id1 = el.Field(el.Integer, primary_key=True)
            id2 = el.Field(el.Integer, primary_key=True)

        self.DbTestCls1 = DbTestCls1
        self.DbTestCls2 = DbTestCls2
        self.DbTestCls3 = DbTestCls3

        el.setup_all()
        el.metadata.create_all()

        foo1 = self.DbTestCls1(id=1, name='foo1')
        self.DbTestCls1(id=2, name='foo2')
        self.DbTestCls2(id=1, nick='bob1')
        self.DbTestCls2(id=2, nick='bob2')
        bob3 = self.DbTestCls2(id=3, nick='bob3')
        foo1.others.append(bob3)
        assert(self.DbTestCls1.query.first().others[0] == bob3)
        transaction.commit()

        return super(ElixirBase, self).setup()
示例#11
0
    Unicode,
    DateTime,
    MetaData,
    Table,
    ForeignKey,
)
from sqlalchemy.orm import relation, backref
from sqlalchemy.ext.declarative import declarative_base

import tw2.sqla as tws

import random
from random import randint
from datetime import datetime, timedelta

session = tws.transactional_session()
Base = declarative_base(metadata=MetaData('sqlite:///%s.db' % __name__))
Base.query = session.query_property()

friends_mapping = Table(
    'persons_friends_mapping', Base.metadata,
    Column('friender_id', Integer, ForeignKey('persons.id'), primary_key=True),
    Column('friendee_id', Integer, ForeignKey('persons.id'), primary_key=True))


class Person(Base):
    __tablename__ = 'persons'
    id = Column(Integer, primary_key=True)
    first_name = Column(Unicode(255), nullable=False)
    last_name = Column(Unicode(255), nullable=False)
    some_attribute = Column(Unicode(255), nullable=False)
示例#12
0
文件: sqla.py 项目: daleathan/tw2.jit
"""

from tw2.core.resources import JSSymbol

from tw2.jit.widgets import SQLARadialGraph

import transaction
from sqlalchemy import (
    Column, Integer, Unicode,
    MetaData, Table, ForeignKey,
)
from sqlalchemy.orm import relation, backref
from sqlalchemy.ext.declarative import declarative_base
import tw2.sqla as tws

session = tws.transactional_session()
Base = declarative_base(metadata=MetaData('sqlite:///%s.db' % __name__))
Base.query = session.query_property()

friends_mapping = Table(
    'persons_friends_mapping', Base.metadata,
    Column('friender_id', Integer,
           ForeignKey('persons.id'), primary_key=True),
    Column('friendee_id', Integer,
           ForeignKey('persons.id'), primary_key=True))

class Person(Base):
    __tablename__ = 'persons'
    id = Column(Integer, primary_key=True)
    first_name = Column(Unicode(255), nullable=False)
    last_name = Column(Unicode(255), nullable=False)
示例#13
0
    def setUp(self):
        from sqlalchemy.ext.declarative import declarative_base
        self.session = tws.transactional_session()
        Base = declarative_base(metadata=sa.MetaData('sqlite:///:memory:'))
        Base.query = self.session.query_property()

        class DBTestCls1(Base):
            __tablename__ = 'Test'
            id = sa.Column(sa.Integer, primary_key=True)
            name = sa.Column(sa.String(50))
            some_number = sa.Column(sa.Integer, default=2)

        class DBTestCls2(Base):
            __tablename__ = 'Test2'
            id = sa.Column(sa.Integer, primary_key=True)
            nick = sa.Column(sa.String)
            other_id = sa.Column(sa.Integer, sa.ForeignKey('Test.id'))
            other = sa.orm.relation(DBTestCls1,
                                    backref=sa.orm.backref('others'))

        join_table = sa.Table('Test3_Test4', Base.metadata,
            sa.Column('Test3', sa.Integer, sa.ForeignKey('Test3.id'), primary_key=True),
            sa.Column('Test4', sa.Integer, sa.ForeignKey('Test4.id'), primary_key=True)
        )
        class DBTestCls3(Base):
            __tablename__ = 'Test3'
            id = sa.Column(sa.Integer, primary_key=True)
            surname = sa.Column(sa.String(50))
            def __unicode__(self):
                return self.surname
        class DBTestCls4(Base):
            __tablename__ = 'Test4'
            id = sa.Column(sa.Integer, primary_key=True)
            rolename = sa.Column(sa.String(50))
            users = sa.orm.relationship('DBTestCls3', secondary=join_table, backref='roles')
            def __unicode__(self):
                return self.rolename

        class DBTestCls5(Base):
            __tablename__ = 'Test5'
            id = sa.Column(sa.Integer, primary_key=True)
            account_name = sa.Column(sa.String(50), nullable=False)

        class DBTestCls6(Base):
            __tablename__ = 'Test6'
            id = sa.Column(sa.Integer, primary_key=True)
            name = sa.Column(sa.String(50))
            account_id = sa.Column(sa.Integer, sa.ForeignKey('Test5.id'), nullable=True)
            account = sa.orm.relation(DBTestCls5, backref=sa.orm.backref('user', uselist=False))

        Base.metadata.create_all()

        self.DBTestCls1 = DBTestCls1
        self.DBTestCls2 = DBTestCls2
        self.DBTestCls3 = DBTestCls3
        self.DBTestCls4 = DBTestCls4
        self.DBTestCls5 = DBTestCls5
        self.DBTestCls6 = DBTestCls6

        foo = self.DBTestCls1(id=1, name='foo')
        self.session.add(foo)

        bob = self.DBTestCls2(id=1, nick='bob')
        bob.other = foo
        self.session.add(bob)
        george = self.DBTestCls2(id=2, nick='george')
        self.session.add(george)

        fred = self.DBTestCls3(id=1, surname='fred')
        admin = self.DBTestCls4(id=1, rolename='admin')
        fred.roles.append(admin)
        self.session.add(fred)
        self.admin_role = admin

        account1 = self.DBTestCls5(id=1, account_name='account1')
        self.session.add(account1)
        bob1 = self.DBTestCls6(id=1, name='bob1', account_id=1)
        self.session.add(bob1)

        transaction.commit()

        testapi.setup()
示例#14
0
    def setUp(self):
        from sqlalchemy.ext.declarative import declarative_base
        self.session = tws.transactional_session()
        Base = declarative_base(metadata=sa.MetaData('sqlite:///:memory:'))
        Base.query = self.session.query_property()

        class DBTestCls1(Base):
            __tablename__ = 'Test'
            id = sa.Column(sa.Integer, primary_key=True)
            name = sa.Column(sa.String(50))
            some_number = sa.Column(sa.Integer, default=2)

        class DBTestCls2(Base):
            __tablename__ = 'Test2'
            id = sa.Column(sa.Integer, primary_key=True)
            nick = sa.Column(sa.String)
            other_id = sa.Column(sa.Integer, sa.ForeignKey('Test.id'))
            other = sa.orm.relation(DBTestCls1,
                                    backref=sa.orm.backref('others'))

        join_table = sa.Table(
            'Test3_Test4', Base.metadata,
            sa.Column('Test3',
                      sa.Integer,
                      sa.ForeignKey('Test3.id'),
                      primary_key=True),
            sa.Column('Test4',
                      sa.Integer,
                      sa.ForeignKey('Test4.id'),
                      primary_key=True))

        class DBTestCls3(Base):
            __tablename__ = 'Test3'
            id = sa.Column(sa.Integer, primary_key=True)
            surname = sa.Column(sa.String(50))

            def __unicode__(self):
                return self.surname

        class DBTestCls4(Base):
            __tablename__ = 'Test4'
            id = sa.Column(sa.Integer, primary_key=True)
            rolename = sa.Column(sa.String(50))
            users = sa.orm.relationship('DBTestCls3',
                                        secondary=join_table,
                                        backref='roles')

            def __unicode__(self):
                return self.rolename

        class DBTestCls5(Base):
            __tablename__ = 'Test5'
            id = sa.Column(sa.Integer, primary_key=True)
            account_name = sa.Column(sa.String(50), nullable=False)

        class DBTestCls6(Base):
            __tablename__ = 'Test6'
            id = sa.Column(sa.Integer, primary_key=True)
            name = sa.Column(sa.String(50))
            account_id = sa.Column(sa.Integer,
                                   sa.ForeignKey('Test5.id'),
                                   nullable=True)
            account = sa.orm.relation(DBTestCls5,
                                      backref=sa.orm.backref('user',
                                                             uselist=False))

        Base.metadata.create_all()

        self.DBTestCls1 = DBTestCls1
        self.DBTestCls2 = DBTestCls2
        self.DBTestCls3 = DBTestCls3
        self.DBTestCls4 = DBTestCls4
        self.DBTestCls5 = DBTestCls5
        self.DBTestCls6 = DBTestCls6

        foo = self.DBTestCls1(id=1, name='foo')
        self.session.add(foo)

        bob = self.DBTestCls2(id=1, nick='bob')
        bob.other = foo
        self.session.add(bob)
        george = self.DBTestCls2(id=2, nick='george')
        self.session.add(george)

        fred = self.DBTestCls3(id=1, surname='fred')
        admin = self.DBTestCls4(id=1, rolename='admin')
        fred.roles.append(admin)
        self.session.add(fred)
        self.admin_role = admin

        account1 = self.DBTestCls5(id=1, account_name='account1')
        self.session.add(account1)
        bob1 = self.DBTestCls6(id=1, name='bob1', account_id=1)
        self.session.add(bob1)

        transaction.commit()

        testapi.setup()