Files
deb-python-sqlalchemy-utils/tests/__init__.py
2013-03-26 13:03:43 +02:00

87 lines
2.4 KiB
Python

import sqlalchemy as sa
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy_utils import (
escape_like,
sort_query,
InstrumentedList,
PhoneNumber,
PhoneNumberType,
merge
)
class TestCase(object):
def setup_method(self, method):
self.engine = create_engine(
'postgres://postgres@localhost/sqlalchemy_utils_test'
)
self.Base = declarative_base()
self.create_models()
self.Base.metadata.create_all(self.engine)
Session = sessionmaker(bind=self.engine)
self.session = Session()
def teardown_method(self, method):
self.session.close_all()
self.Base.metadata.drop_all(self.engine)
self.engine.dispose()
def create_models(self):
class User(self.Base):
__tablename__ = 'user'
id = sa.Column(sa.Integer, autoincrement=True, primary_key=True)
name = sa.Column(sa.Unicode(255))
phone_number = sa.Column(PhoneNumberType())
class Category(self.Base):
__tablename__ = 'category'
id = sa.Column(sa.Integer, primary_key=True)
name = sa.Column(sa.Unicode(255))
class Article(self.Base):
__tablename__ = 'article'
id = sa.Column(sa.Integer, primary_key=True)
name = sa.Column(sa.Unicode(255))
category_id = sa.Column(sa.Integer, sa.ForeignKey(Category.id))
category = sa.orm.relationship(
Category,
primaryjoin=category_id == Category.id,
backref=sa.orm.backref(
'articles',
collection_class=InstrumentedList
)
)
self.User = User
self.Category = Category
self.Article = Article
class DatabaseTestCase(object):
def create_models(self):
pass
def setup_method(self, method):
self.engine = create_engine(
'sqlite:///'
)
#self.engine.echo = True
self.Base = declarative_base()
self.create_models()
self.Base.metadata.create_all(self.engine)
Session = sessionmaker(bind=self.engine)
self.session = Session()
def teardown_method(self, method):
self.engine.dispose()
self.Base.metadata.drop_all(self.engine)
self.session.expunge_all()