diff -r 191c2c1d6e53 -r f479738b4879 iro/controller/database.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/iro/controller/database.py Thu Dec 22 03:13:34 2011 +0100 @@ -0,0 +1,29 @@ +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() +