allow resetting the database

This commit is contained in:
MinRK
2014-09-21 17:31:57 -07:00
parent 363d81a380
commit fc93f1b0c2

View File

@@ -337,7 +337,6 @@ class Token(object):
return db.query(cls).filter(cls.token==token).first() return db.query(cls).filter(cls.token==token).first()
class APIToken(Token, Base): class APIToken(Token, Base):
"""An API token""" """An API token"""
__tablename__ = 'api_tokens' __tablename__ = 'api_tokens'
@@ -348,13 +347,15 @@ class CookieToken(Token, Base):
__tablename__ = 'cookie_tokens' __tablename__ = 'cookie_tokens'
def new_session(url="sqlite:///:memory:", **kwargs): def new_session(url="sqlite:///:memory:", reset=False, **kwargs):
"""Create a new session at url""" """Create a new session at url"""
kwargs.setdefault('connect_args', {'check_same_thread': False}) kwargs.setdefault('connect_args', {'check_same_thread': False})
kwargs.setdefault('poolclass', StaticPool) kwargs.setdefault('poolclass', StaticPool)
engine = create_engine(url, **kwargs) engine = create_engine(url, **kwargs)
Session = sessionmaker(bind=engine) Session = sessionmaker(bind=engine)
session = Session() session = Session()
if reset:
Base.metadata.drop_all(engine)
Base.metadata.create_all(engine) Base.metadata.create_all(engine)
return session return session