feat: error messages when connecting to mssql (#14171)

* database errors for mssql

* revisions
This commit is contained in:
AAfghahi 2021-04-16 12:43:42 -04:00 committed by GitHub
parent 8db7be16da
commit df04c3af21
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 37 additions and 11 deletions

View File

@ -93,6 +93,7 @@ class TestConnectionDatabaseCommand(BaseCommand):
"password": url.password,
"port": url.port,
"username": url.username,
"database": url.database,
}
errors = database.db_engine_spec.extract_errors(ex, context)
raise DatabaseTestConnectionFailedError(errors)

View File

@ -66,7 +66,10 @@ class MssqlEngineSpec(BaseEngineSpec):
custom_errors = {
CONNECTION_ACCESS_DENIED_REGEX: (
__('Either the username "%(username)s" or the password is incorrect.'),
__(
'Either the username "%(username)s", password, '
'or database name "%(database)s" is incorrect.'
),
SupersetErrorType.CONNECTION_ACCESS_DENIED_ERROR,
),
CONNECTION_INVALID_HOSTNAME_REGEX: (

View File

@ -179,7 +179,14 @@ ERROR_TYPES_TO_ISSUE_CODES_MAPPING = {
{
"code": 1014,
"message": _("Issue 1014 - Either the username or the password is wrong."),
}
},
{
"code": 1015,
"message": _(
"Issue 1015 - Either the database is "
"spelled incorrectly or does not exist."
),
},
],
SupersetErrorType.CONNECTION_UNKNOWN_DATABASE_ERROR: [
{

View File

@ -284,11 +284,11 @@ Adaptive Server connection failed (mssqldb.cxiotftzsypc.us-west-2.rds.amazonaws.
"""
)
result = MssqlEngineSpec.extract_errors(
Exception(msg), context={"username": "testuser"}
Exception(msg), context={"username": "testuser", "database": "testdb"}
)
assert result == [
SupersetError(
message='Either the username "testuser" or the password is incorrect.',
message='Either the username "testuser", password, or database name "testdb" is incorrect.',
error_type=SupersetErrorType.CONNECTION_ACCESS_DENIED_ERROR,
level=ErrorLevel.ERROR,
extra={
@ -296,8 +296,14 @@ Adaptive Server connection failed (mssqldb.cxiotftzsypc.us-west-2.rds.amazonaws.
"issue_codes": [
{
"code": 1014,
"message": "Issue 1014 - Either the username or the password is wrong.",
}
"message": "Issue 1014 - Either the username or "
"the password is wrong.",
},
{
"code": 1015,
"message": "Issue 1015 - Either the database is "
"spelled incorrectly or does not exist.",
},
],
},
)

View File

@ -124,7 +124,12 @@ class TestMySQLEngineSpecsDbEngineSpec(TestDbEngineSpec):
"code": 1014,
"message": "Issue 1014 - Either the"
" username or the password is wrong.",
}
},
{
"code": 1015,
"message": "Issue 1015 - Either the database is "
"spelled incorrectly or does not exist.",
},
],
},
)

View File

@ -15,7 +15,6 @@
# specific language governing permissions and limitations
# under the License.
from textwrap import dedent
from unittest import mock
from superset.db_engine_specs.redshift import RedshiftEngineSpec
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
@ -39,9 +38,14 @@ class TestRedshiftDbEngineSpec(TestDbEngineSpec):
"issue_codes": [
{
"code": 1014,
"message": "Issue 1014 - Either the username or "
"the password is wrong",
}
"message": "Issue 1014 - Either the username "
"or the password is wrong.",
},
{
"code": 1015,
"message": "Issue 1015 - Either the database is "
"spelled incorrectly or does not exist.",
},
],
},
)