def setUpClass(cls): from tutorial.models.meta import Base from tutorial.models import ( User, Page, get_tm_session, ) from tutorial import main settings = { 'sqlalchemy.url': 'sqlite://', 'auth.secret': 'seekrit', } app = main({}, **settings) cls.testapp = webtest.TestApp(app) session_factory = app.registry['dbsession_factory'] cls.engine = session_factory.kw['bind'] Base.metadata.create_all(bind=cls.engine) with transaction.manager: dbsession = get_tm_session(session_factory, transaction.manager) editor = User(name='editor', role='editor') editor.set_password('editor') basic = User(name='basic', role='basic') basic.set_password('basic') page1 = Page(name='FrontPage', data='This is the front page') page1.creator = editor page2 = Page(name='BackPage', data='This is the back page') page2.creator = basic dbsession.add_all([basic, editor, page1, page2])
def setUpClass(cls): from tutorial.models.meta import Base from tutorial.models import ( User, Page, get_tm_session, ) from tutorial import main settings = { 'sqlalchemy.url': 'sqlite://', 'auth.secret': 'seekrit', } app = main({}, **settings) cls.testapp = TestApp(app) session_factory = app.registry['dbsession_factory'] cls.engine = session_factory.kw['bind'] Base.metadata.create_all(bind=cls.engine) with transaction.manager: dbsession = get_tm_session(session_factory, transaction.manager) editor = User(name='editor', role='editor') editor.set_password('editor') basic = User(name='basic', role='basic') basic.set_password('basic') page1 = Page(name='FrontPage', data='This is the front page') page1.creator = editor page2 = Page(name='BackPage', data='This is the back page') page2.creator = basic dbsession.add_all([basic, editor, page1, page2])
def dummy_data(app): """ Add some dummy data to the database. Note that this is a session fixture that commits data to the database. Think about it similarly to running the ``initialize_db`` script at the start of the test suite. This data should not conflict with any other data added throughout the test suite or there will be issues - so be careful with this pattern! """ tm = transaction.TransactionManager(explicit=True) with tm: dbsession = models.get_tm_session(app.registry['dbsession_factory'], tm) editor = models.User(name='editor', role='editor') editor.set_password('editor') basic = models.User(name='basic', role='basic') basic.set_password('basic') page1 = models.Page(name='FrontPage', data='This is the front page') page1.creator = editor page2 = models.Page(name='BackPage', data='This is the back page') page2.creator = basic dbsession.add_all([basic, editor, page1, page2])
def setUp(self): from tutorial.models import get_tm_session self.config = testing.setUp( settings={'sqlalchemy.url': 'sqlite:///:memory:'}) self.config.include('tutorial.models') self.config.include('tutorial.routes') session_factory = self.config.registry['dbsession_factory'] self.session = get_tm_session(session_factory, transaction.manager) self.init_database()
def setUp(self): self.config = testing.setUp( settings={'sqlalchemy.url': 'sqlite:///:memory:'}) self.config.include('tutorial.models') settings = self.config.get_settings() from tutorial.models import ( get_engine, get_session_factory, get_tm_session, ) self.engine = get_engine(settings) session_factory = get_session_factory(self.engine) self.session = get_tm_session(session_factory, transaction.manager)
def dbsession(app, tm): session_factory = app.registry['dbsession_factory'] return models.get_tm_session(session_factory, tm)