from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from model import Base
engine = create_engine('sqlite:///:memory:', echo=True)
def createDatabase():
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
class WithSession():
def __init__(self,autocommit=False):
self.autocommit=autocommit
def __enter__(self):
self.conn = engine.connect()
self.session = Session(bind=self.conn)
return self.session
def __exit__(self,exc_type, exc_value, traceback):
if exc_type is None:
if self.autocommit:
self.session.commit()
else:
self.session.rollback()
self.session.close()
self.conn.close()