chore: Update testconn logic (#11315)

* chore: Update testconn logic

* [databases] Address @dpgaspar's comments

Co-authored-by: John Bodley <john.bodley@airbnb.com>
This commit is contained in:
John Bodley
2020-10-27 02:15:05 -07:00
committed by GitHub
parent ecdff724ea
commit 8ee6493233
3 changed files with 12 additions and 13 deletions

View File

@@ -19,7 +19,7 @@ from contextlib import closing
from typing import Any, Dict, Optional
from flask_appbuilder.security.sqla.models import User
from sqlalchemy import select
from sqlalchemy.exc import DBAPIError
from superset.commands.base import BaseCommand
from superset.databases.commands.exceptions import DatabaseSecurityUnsafeError
@@ -54,8 +54,9 @@ class TestConnectionDatabaseCommand(BaseCommand):
database.db_engine_spec.mutate_db_for_connection_test(database)
username = self._actor.username if self._actor is not None else None
engine = database.get_sqla_engine(user_name=username)
with closing(engine.connect()) as conn:
conn.scalar(select([1]))
with closing(engine.raw_connection()) as conn:
if not engine.dialect.do_ping(conn):
raise DBAPIError(None, None, None)
except DBSecurityException as ex:
logger.warning(ex)
raise DatabaseSecurityUnsafeError()