Ejemplo n.º 1
0
 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")
Ejemplo n.º 2
0
 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')
Ejemplo n.º 4
0
    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))
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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()
Ejemplo n.º 8
0
    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
Ejemplo n.º 9
0
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')
Ejemplo n.º 10
0
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')
Ejemplo n.º 11
0
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")
Ejemplo n.º 12
0
    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))
Ejemplo n.º 13
0
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')
Ejemplo n.º 14
0
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')