def test_postgresql_connect_fail(self): """Test that we can trigger a postgres connection failure and we fail gracefully to ensure we don't break people without postgres """ if oslodbutils.is_backend_avail('postgresql+psycopg2', self.DATABASE, "openstack_cifail", self.PASSWD): self.fail("Shouldn't have connected")
def test_mysql_connect_fail(self): """Test that we can trigger a mysql connection failure and we fail gracefully to ensure we don't break people without mysql """ if oslodbutils.is_backend_avail('mysql+mysqldb', self.DATABASE, "openstack_cifail", self.PASSWD): self.fail("Shouldn't have connected")
def _have_postgresql(user, passwd, database): present = os.environ.get('TEST_POSTGRESQL_PRESENT') if present is None: return utils.is_backend_avail(backend='postgres', user=user, passwd=passwd, database=database) return present.lower() in ('', 'true')
def test_is_backend_avail(self): self.mox.StubOutWithMock(sqlalchemy.engine.base.Engine, 'connect') fake_connection = self.mox.CreateMockAnything() fake_connection.close() sqlalchemy.engine.base.Engine.connect().AndReturn(fake_connection) self.mox.ReplayAll() self.assertTrue(utils.is_backend_avail(**self.full_credentials))
def test_is_backend_unavail(self): log = self.useFixture(fixtures.FakeLogger()) err = OperationalError("Can't connect to database", None, None) error_msg = "The postgresql backend is unavailable: %s\n" % err self.mox.StubOutWithMock(sqlalchemy.engine.base.Engine, 'connect') sqlalchemy.engine.base.Engine.connect().AndRaise(err) self.mox.ReplayAll() self.assertFalse(utils.is_backend_avail(**self.full_credentials)) self.assertEqual(error_msg, log.output)
def test_is_backend_unavail(self): log = self.useFixture(fixtures.FakeLogger()) error_cause = "This result object does not return rows. It has been" "closed automatically." error_msg = "The %s backend is unavailable: %s\n" % ("mysql", error_cause) self.mox.StubOutWithMock(sqlalchemy.engine.base.Engine, "connect") sqlalchemy.engine.base.Engine.connect().AndRaise(ResourceClosedError(error_cause)) self.mox.ReplayAll() self.assertFalse(utils.is_backend_avail(**self.full_credentials)) self.assertEqual(error_msg, log.output)
def setUp(self): credentials = { 'backend': self.FIXTURE.DRIVER, 'user': self.FIXTURE.USERNAME, 'passwd': self.FIXTURE.PASSWORD, 'database': self.FIXTURE.DBNAME} if self.FIXTURE.DRIVER and not utils.is_backend_avail(**credentials): msg = '%s backend is not available.' % self.FIXTURE.DRIVER return self.skip(msg) super(OpportunisticTestCase, self).setUp()
def _get_uri(self): if self._uri is not None: return self._uri credentials = { 'backend': self.DRIVER, 'user': self.USERNAME, 'passwd': self.PASSWORD, 'database': self.DBNAME} if self.DRIVER and not utils.is_backend_avail(**credentials): msg = '%s backend is not available.' % self.DRIVER raise testtools.testcase.TestSkipped(msg) self._provisioning_engine = provision.get_engine( utils.get_connect_string(backend=self.DRIVER, user=self.USERNAME, passwd=self.PASSWORD, database=self.DBNAME) ) self._uri = provision.create_database(self._provisioning_engine) self.addCleanup( provision.drop_database, self._provisioning_engine, self._uri) self.addCleanup(setattr, self, '_uri', None) return self._uri
def _have_postgresql(user, passwd, database): present = os.environ.get('NOVA_TEST_POSTGRESQL_PRESENT') if present is None: return oslodbutils.is_backend_avail('postgresql+psycopg2', database, user, passwd) return present.lower() in ('', 'true')
def _have_mysql(user, passwd, database): present = os.environ.get('NOVA_TEST_MYSQL_PRESENT') if present is None: return oslodbutils.is_backend_avail('mysql+mysqldb', database, user, passwd) return present.lower() in ('', 'true')
def _have_mysql(user, passwd, database): present = os.environ.get("NOVA_TEST_MYSQL_PRESENT") if present is None: return oslodbutils.is_backend_avail("mysql+mysqldb", database, user, passwd) return present.lower() in ("", "true")
def test_is_backend_unavail(self): self.mox.StubOutWithMock(sqlalchemy.engine.base.Engine, 'connect') sqlalchemy.engine.base.Engine.connect().AndRaise(OperationalError) self.mox.ReplayAll() self.assertFalse(utils.is_backend_avail(**self.full_credentials))