class TestDB(object): def __init__(self, config, dumpfile): from inbox.models.session import InboxSession from inbox.ignition import main_engine engine = main_engine() # Set up test database self.session = InboxSession(engine, versioned=False) self.engine = engine self.config = config self.dumpfile = dumpfile # Populate with test data self.populate() def populate(self): """ Populates database with data from the test dumpfile. """ database = self.config.get('MYSQL_DATABASE') user = self.config.get('MYSQL_USER') password = self.config.get('MYSQL_PASSWORD') hostname = self.config.get('MYSQL_HOSTNAME') port = self.config.get('MYSQL_PORT') cmd = 'mysql {0} -h{1} -P{2} -u{3} -p{4} < {5}'. \ format(database, hostname, port, user, password, self.dumpfile) subprocess.check_call(cmd, shell=True) def teardown(self): """ Closes the session. We need to explicitly do this to prevent certain tests from hanging. Note that we don't need to actually destroy or rolback the database because we create it anew on each test. """ self.session.close()
class TestDB(object): def __init__(self, config, dumpfile): from inbox.models.session import InboxSession from inbox.ignition import main_engine engine = main_engine() # Set up test database self.session = InboxSession(engine) self.engine = engine self.config = config self.dumpfile = dumpfile # Populate with test data self.populate() def populate(self): """ Populates database with data from the test dumpfile. """ database = self.config.get('MYSQL_DATABASE') user = self.config.get('MYSQL_USER') password = self.config.get('MYSQL_PASSWORD') hostname = self.config.get('MYSQL_HOSTNAME') port = self.config.get('MYSQL_PORT') cmd = 'mysql {0} -h{1} -P{2} -u{3} -p{4} < {5}'. \ format(database, hostname, port, user, password, self.dumpfile) subprocess.check_call(cmd, shell=True) def teardown(self): """ Closes the session. We need to explicitly do this to prevent certain tests from hanging. Note that we don't need to actually destroy or rolback the database because we create it anew on each test. """ self.session.close()
def real_db(): """A fixture to get access to the real mysql db. We need this to log in to providers like gmail to check that events changes are synced back.""" engine = main_engine() session = InboxSession(engine) yield session session.rollback() session.close()
class TestDB(object): def __init__(self, config, dumpfile): from inbox.models.session import InboxSession from inbox.ignition import main_engine engine = main_engine() # Set up test database self.session = InboxSession(engine, versioned=False) self.engine = engine self.config = config self.dumpfile = dumpfile # Populate with test data self.populate() def populate(self): """ Populates database with data from the test dumpfile. """ database = self.config.get('MYSQL_DATABASE') user = self.config.get('MYSQL_USER') password = self.config.get('MYSQL_PASSWORD') cmd = 'mysql {0} -u{1} -p{2} < {3}'.format(database, user, password, self.dumpfile) subprocess.check_call(cmd, shell=True) def new_session(self, ignore_soft_deletes=True): from inbox.models.session import InboxSession self.session.close() self.session = InboxSession(self.engine, versioned=False, ignore_soft_deletes=ignore_soft_deletes) def teardown(self): """Closes the session. We need to explicitly do this to prevent certain tests from hanging. Note that we don't need to actually destroy or rolback the database because we create it anew on each test.""" self.session.rollback() self.session.close() def save(self): """ Updates the test dumpfile. """ database = self.config.get('MYSQL_DATABASE') cmd = 'mysqldump {0} > {1}'.format(database, self.dumpfile) subprocess.check_call(cmd, shell=True)
class TestDB(object): def __init__(self, config, dumpfile): from inbox.models.session import InboxSession from inbox.ignition import engine # Set up test database self.session = InboxSession(engine, versioned=False) self.engine = engine self.config = config self.dumpfile = dumpfile # Populate with test data self.populate() def populate(self): """ Populates database with data from the test dumpfile. """ database = self.config.get('MYSQL_DATABASE') user = self.config.get('MYSQL_USER') password = self.config.get('MYSQL_PASSWORD') cmd = 'mysql {0} -u{1} -p{2} < {3}'.format(database, user, password, self.dumpfile) subprocess.check_call(cmd, shell=True) def new_session(self, ignore_soft_deletes=True): from inbox.models.session import InboxSession self.session.close() self.session = InboxSession(self.engine, versioned=False, ignore_soft_deletes=ignore_soft_deletes) def teardown(self): """Closes the session. We need to explicitly do this to prevent certain tests from hanging. Note that we don't need to actually destroy or rolback the database because we create it anew on each test.""" self.session.close() def save(self): """ Updates the test dumpfile. """ database = self.config.get('MYSQL_DATABASE') cmd = 'mysqldump {0} > {1}'.format(database, self.dumpfile) subprocess.check_call(cmd, shell=True)