def test_add_no_params(self): with self._fixture() as ce: engines.create_engine( "mysql+pymysql://foo:bar@bat") self.assertEqual( ce.mock_calls[0][1][0].query, {} )
def test_add_assorted_params(self): with self._fixture() as ce: engines.create_engine( "mysql+pymysql://foo:bar@bat", connection_parameters="foo=bar&bat=hoho&bat=param2") self.assertEqual(ce.mock_calls[0][1][0].query, { 'bat': ['hoho', 'param2'], 'foo': 'bar' })
def test_add_assorted_params(self): with self._fixture() as ce: engines.create_engine( "mysql+pymysql://foo:bar@bat", connection_parameters="foo=bar&bat=hoho&bat=param2") self.assertEqual( ce.mock_calls[0][1][0].query, {'bat': ['hoho', 'param2'], 'foo': 'bar'} )
def setUpClass(cls): engine = create_engine('sqlite://') qry = open('monasca_api/tests/sqlite_alarm.sql', 'r').read() sconn = engine.raw_connection() c = sconn.cursor() c.executescript(qry) sconn.commit() c.close() cls.engine = engine def _fake_engine_from_config(*args, **kw): return cls.engine cls.fixture = fixtures.MonkeyPatch('sqlalchemy.create_engine', _fake_engine_from_config) cls.fixture.setUp() metadata = MetaData() cls.nm = models.create_nm_model(metadata) cls._delete_nm_query = delete(cls.nm) cls._insert_nm_query = (insert(cls.nm).values( id=bindparam('id'), tenant_id=bindparam('tenant_id'), name=bindparam('name'), type=bindparam('type'), address=bindparam('address'), period=bindparam('period'), created_at=bindparam('created_at'), updated_at=bindparam('updated_at')))
def setUpClass(cls): engine = create_engine('sqlite://') qry = open('monasca_api/tests/sqlite_alarm.sql', 'r').read() sconn = engine.raw_connection() c = sconn.cursor() c.executescript(qry) sconn.commit() c.close() cls.engine = engine def _fake_engine_from_config(*args, **kw): return cls.engine cls.fixture = fixtures.MonkeyPatch( 'sqlalchemy.create_engine', _fake_engine_from_config) cls.fixture.setUp() metadata = MetaData() cls.nm = models.create_nm_model(metadata) cls._delete_nm_query = delete(cls.nm) cls._insert_nm_query = (insert(cls.nm) .values( id=bindparam('id'), tenant_id=bindparam('tenant_id'), name=bindparam('name'), type=bindparam('type'), address=bindparam('address'), period=bindparam('period'), created_at=bindparam('created_at'), updated_at=bindparam('updated_at')))
def test_combine_multi_params(self): with self._fixture() as ce: engines.create_engine( "mysql+pymysql://foo:bar@bat/" "?charset=utf8¶m_file=tripleo.cnf&plugin=connmon", connection_parameters="plugin=sqlalchemy_collectd&" "collectd_host=127.0.0.1&" "bind_host=192.168.1.5") self.assertEqual( ce.mock_calls[0][1][0].query, { 'bind_host': '192.168.1.5', 'charset': 'utf8', 'collectd_host': '127.0.0.1', 'param_file': 'tripleo.cnf', 'plugin': ['connmon', 'sqlalchemy_collectd'] })
def _setup_for_connection( self, sql_connection, engine_kwargs, maker_kwargs): if sql_connection is None: raise exception.CantStartEngineError( "No sql_connection parameter is established") engine = engines.create_engine( sql_connection=sql_connection, **engine_kwargs) sessionmaker = orm.get_maker(engine=engine, **maker_kwargs) return engine, sessionmaker
def test_combine_multi_params(self): with self._fixture() as ce: engines.create_engine( "mysql+pymysql://foo:bar@bat/" "?charset=utf8¶m_file=tripleo.cnf&plugin=connmon", connection_parameters="plugin=sqlalchemy_collectd&" "collectd_host=127.0.0.1&" "bind_host=192.168.1.5") self.assertEqual( ce.mock_calls[0][1][0].query, { 'bind_host': '192.168.1.5', 'charset': 'utf8', 'collectd_host': '127.0.0.1', 'param_file': 'tripleo.cnf', 'plugin': ['connmon', 'sqlalchemy_collectd'] } )
def engine(self): uri = self.sqlalchemy_conf.uri engine = engines.create_engine(uri, sqlite_fk=True) if (uri.startswith('mysql://') or uri.startswith('mysql+pymysql://')): # oslo_db.create_engine makes a test connection, throw that out first # mysql time_zone can be added to oslo_db as a startup option engine.dispose() sa.event.listen(engine, 'connect', self._mysql_on_connect) return engine
def init_db(self, use_ndb): # get the MySQL engine created by the opportunistic # provisioning system self.engine = enginefacade.writer.get_engine() if use_ndb: # if we want NDB, make a new local engine that uses the # URL / database / schema etc. of the provisioned engine, # since NDB-ness is a per-table thing self.engine = engines.create_engine(self.engine.url, mysql_enable_ndb=True) self.addCleanup(self.engine.dispose) self.test_table = _TEST_TABLE try: self.test_table.create(self.engine) except exception.DBNotSupportedError: self.skipTest("MySQL NDB Cluster not available")
def engine(self): uri = self.sqlalchemy_conf.uri engine = engines.create_engine(uri, sqlite_fk=True) if (uri.startswith('mysql://') or uri.startswith('mysql+pymysql://')): # oslo_db.create_engine makes a test connection, throw that out # first. mysql time_zone can be added to oslo_db as a # startup option engine.dispose() sa.event.listen(engine, 'connect', self._mysql_on_connect) if (self.conf.profiler.enabled and self.conf.profiler.trace_message_store): sa_tracer.add_tracing(sa, engine, "db") return engine
def init_db(self, use_ndb): # get the MySQL engine created by the opportunistic # provisioning system self.engine = enginefacade.writer.get_engine() if use_ndb: # if we want NDB, make a new local engine that uses the # URL / database / schema etc. of the provisioned engine, # since NDB-ness is a per-table thing self.engine = engines.create_engine( self.engine.url, mysql_enable_ndb=True ) self.addCleanup(self.engine.dispose) self.test_table = _TEST_TABLE try: self.test_table.create(self.engine) except exception.DBNotSupportedError: self.skipTest("MySQL NDB Cluster not available")
def setUpClass(cls): engine = create_engine('sqlite://') qry = open('monasca_api/tests/sqlite_alarm.sql', 'r').read() sconn = engine.raw_connection() c = sconn.cursor() c.executescript(qry) sconn.commit() c.close() cls.engine = engine def _fake_engine_from_config(*args, **kw): return cls.engine cls.fixture = fixtures.MonkeyPatch('sqlalchemy.create_engine', _fake_engine_from_config) cls.fixture.setUp() metadata = MetaData() cls.aa = models.create_aa_model(metadata) cls._delete_aa_query = delete(cls.aa) cls._insert_aa_query = (insert(cls.aa).values( alarm_definition_id=bindparam('alarm_definition_id'), alarm_state=bindparam('alarm_state'), action_id=bindparam('action_id'))) cls.ad = models.create_ad_model(metadata) cls._delete_ad_query = delete(cls.ad) cls._insert_ad_query = (insert(cls.ad).values( id=bindparam('id'), tenant_id=bindparam('tenant_id'), name=bindparam('name'), severity=bindparam('severity'), expression=bindparam('expression'), match_by=bindparam('match_by'), actions_enabled=bindparam('actions_enabled'), created_at=bindparam('created_at'), updated_at=bindparam('updated_at'), deleted_at=bindparam('deleted_at'))) cls.sad = models.create_sad_model(metadata) cls._delete_sad_query = delete(cls.sad) cls._insert_sad_query = (insert(cls.sad).values( id=bindparam('id'), alarm_definition_id=bindparam('alarm_definition_id'), function=bindparam('function'), metric_name=bindparam('metric_name'), operator=bindparam('operator'), threshold=bindparam('threshold'), period=bindparam('period'), periods=bindparam('periods'), is_deterministic=bindparam('is_deterministic'), created_at=bindparam('created_at'), updated_at=bindparam('updated_at'))) cls.sadd = models.create_sadd_model(metadata) cls._delete_sadd_query = delete(cls.sadd) cls._insert_sadd_query = (insert(cls.sadd).values( sub_alarm_definition_id=bindparam('sub_alarm_definition_id'), dimension_name=bindparam('dimension_name'), value=bindparam('value'))) cls.nm = models.create_nm_model(metadata) cls._delete_nm_query = delete(cls.nm) cls._insert_nm_query = (insert(cls.nm).values( id=bindparam('id'), tenant_id=bindparam('tenant_id'), name=bindparam('name'), type=bindparam('type'), address=bindparam('address'), created_at=bindparam('created_at'), updated_at=bindparam('updated_at')))
def __init__(self): from sqlalchemy import create_engine self.engine = create_engine(None)
def _init_engine(user, password, host): return engines.create_engine("mysql+pymysql://%s:%s@%s:3306" % (user, password, host))
def setUpClass(cls): engine = create_engine('sqlite://') qry = open('monasca_api/tests/sqlite_alarm.sql', 'r').read() sconn = engine.raw_connection() c = sconn.cursor() c.executescript(qry) sconn.commit() c.close() cls.engine = engine def _fake_engine_from_config(*args, **kw): return cls.engine cls.fixture = fixtures.MonkeyPatch( 'sqlalchemy.create_engine', _fake_engine_from_config) cls.fixture.setUp() metadata = MetaData() cls.aa = models.create_aa_model(metadata) cls._delete_aa_query = delete(cls.aa) cls._insert_aa_query = (insert(cls.aa).values( alarm_definition_id=bindparam('alarm_definition_id'), alarm_state=bindparam('alarm_state'), action_id=bindparam('action_id'))) cls.ad = models.create_ad_model(metadata) cls._delete_ad_query = delete(cls.ad) cls._insert_ad_query = (insert(cls.ad).values( id=bindparam('id'), tenant_id=bindparam('tenant_id'), name=bindparam('name'), severity=bindparam('severity'), expression=bindparam('expression'), match_by=bindparam('match_by'), actions_enabled=bindparam('actions_enabled'), created_at=bindparam('created_at'), updated_at=bindparam('updated_at'), deleted_at=bindparam('deleted_at'))) cls.sad = models.create_sad_model(metadata) cls._delete_sad_query = delete(cls.sad) cls._insert_sad_query = (insert(cls.sad).values( id=bindparam('id'), alarm_definition_id=bindparam('alarm_definition_id'), function=bindparam('function'), metric_name=bindparam('metric_name'), operator=bindparam('operator'), threshold=bindparam('threshold'), period=bindparam('period'), periods=bindparam('periods'), is_deterministic=bindparam('is_deterministic'), created_at=bindparam('created_at'), updated_at=bindparam('updated_at'))) cls.sadd = models.create_sadd_model(metadata) cls._delete_sadd_query = delete(cls.sadd) cls._insert_sadd_query = (insert(cls.sadd).values( sub_alarm_definition_id=bindparam('sub_alarm_definition_id'), dimension_name=bindparam('dimension_name'), value=bindparam('value'))) cls.nm = models.create_nm_model(metadata) cls._delete_nm_query = delete(cls.nm) cls._insert_nm_query = (insert(cls.nm).values( id=bindparam('id'), tenant_id=bindparam('tenant_id'), name=bindparam('name'), type=bindparam('type'), address=bindparam('address'), created_at=bindparam('created_at'), updated_at=bindparam('updated_at')))