Skip to content

[MAINTENANCE] Human-readable MSSQL test connection exceptions#11661

Merged
tyler-hoffman merged 13 commits intodevelopfrom
m/GX-2330/test-connection-errors
Feb 17, 2026
Merged

[MAINTENANCE] Human-readable MSSQL test connection exceptions#11661
tyler-hoffman merged 13 commits intodevelopfrom
m/GX-2330/test-connection-errors

Conversation

@tyler-hoffman
Copy link
Copy Markdown
Contributor

  • Description of PR changes above includes a link to an existing GitHub issue
  • PR title is prefixed with one of: [BUGFIX], [FEATURE], [DOCS], [MAINTENANCE], [CONTRIB], [MINORBUMP]
  • Code is linted - run invoke lint (uses ruff format + ruff check)
  • Appropriate tests and docs have been updated

For more information about contributing, visit our community resources.

After you submit your PR, keep the page open and monitor the statuses of the various checks made by our continuous integration process at the bottom of the page. Please fix any issues that come up and reach out on Slack if you need help. Thanks for contributing!

@netlify
Copy link
Copy Markdown

netlify bot commented Feb 13, 2026

Deploy Preview for niobium-lead-7998 canceled.

Name Link
🔨 Latest commit c3cf96b
🔍 Latest deploy log https://app.netlify.com/projects/niobium-lead-7998/deploys/69949c67bbd2a00008796d31

@codecov
Copy link
Copy Markdown

codecov bot commented Feb 13, 2026

Codecov Report

❌ Patch coverage is 58.82353% with 14 lines in your changes missing coverage. Please review.
✅ Project coverage is 72.75%. Comparing base (1d5164a) to head (c77f939).
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
...tations/datasource/fluent/sql_server_datasource.py 50.00% 14 Missing ⚠️

❗ There is a different number of reports uploaded between BASE (1d5164a) and HEAD (c77f939). Click for more details.

HEAD has 72 uploads less than BASE
Flag BASE (1d5164a) HEAD (c77f939)
3.11 2 1
3.13 2 1
3.12 2 1
3.10 2 1
3.13 clickhouse 2 0
3.10 athena 2 0
3.13 big 2 0
3.10 big 2 0
3.13 aws_deps 2 0
3.13 openpyxl or pyarrow or project or sqlite or aws_creds 2 0
3.10 aws_deps 2 0
3.13 spark_connect 2 0
3.13 mysql 2 0
3.10 mysql 2 0
3.10 spark_connect 2 0
3.10 openpyxl or pyarrow or project or sqlite or aws_creds 2 0
3.13 mssql 2 0
3.10 mssql 2 0
3.13 filesystem 1 0
3.10 filesystem 1 0
3.10 postgresql 1 0
3.13 postgresql 1 0
3.13 trino 1 0
3.10 trino 1 0
3.13 spark 1 0
3.10 spark 1 0
cloud 1 0
docs-spark 1 0
docs-basic 1 0
3.13 gx-redshift 1 0
3.10 gx-redshift 1 0
3.10 clickhouse 2 0
3.13 athena 2 0
3.13 bigquery 1 0
3.10 bigquery 1 0
docs-creds-needed 1 0
3.13 databricks 1 0
3.10 databricks 1 0
3.13 snowflake 1 0
3.10 snowflake 1 0
3.11 athena 1 0
3.11 clickhouse 1 0
3.12 athena 1 0
3.11 big 1 0
3.11 aws_deps 1 0
3.12 big 1 0
3.12 aws_deps 1 0
3.11 spark_connect 1 0
3.12 mysql 1 0
3.11 mysql 1 0
3.11 openpyxl or pyarrow or project or sqlite or aws_creds 1 0
3.12 openpyxl or pyarrow or project or sqlite or aws_creds 1 0
3.11 mssql 1 0
3.12 filesystem 1 0
3.12 mssql 1 0
3.12 spark_connect 1 0
Additional details and impacted files
@@             Coverage Diff              @@
##           develop   #11661       +/-   ##
============================================
- Coverage    84.25%   72.75%   -11.50%     
============================================
  Files          472      471        -1     
  Lines        39727    39759       +32     
============================================
- Hits         33471    28926     -4545     
- Misses        6256    10833     +4577     
Flag Coverage Δ
3.10 72.73% <58.82%> (-0.03%) ⬇️
3.10 athena ?
3.10 aws_deps ?
3.10 big ?
3.10 bigquery ?
3.10 clickhouse ?
3.10 databricks ?
3.10 filesystem ?
3.10 gx-redshift ?
3.10 mssql ?
3.10 mysql ?
3.10 openpyxl or pyarrow or project or sqlite or aws_creds ?
3.10 postgresql ?
3.10 snowflake ?
3.10 spark ?
3.10 spark_connect ?
3.10 trino ?
3.11 72.74% <58.82%> (-0.02%) ⬇️
3.11 athena ?
3.11 aws_deps ?
3.11 big ?
3.11 clickhouse ?
3.11 mssql ?
3.11 mysql ?
3.11 openpyxl or pyarrow or project or sqlite or aws_creds ?
3.11 spark_connect ?
3.12 72.75% <58.82%> (-0.02%) ⬇️
3.12 athena ?
3.12 aws_deps ?
3.12 big ?
3.12 filesystem ?
3.12 mssql ?
3.12 mysql ?
3.12 openpyxl or pyarrow or project or sqlite or aws_creds ?
3.12 spark_connect ?
3.13 72.73% <58.82%> (-0.03%) ⬇️
3.13 athena ?
3.13 aws_deps ?
3.13 big ?
3.13 bigquery ?
3.13 clickhouse ?
3.13 databricks ?
3.13 filesystem ?
3.13 gx-redshift ?
3.13 mssql ?
3.13 mysql ?
3.13 openpyxl or pyarrow or project or sqlite or aws_creds ?
3.13 postgresql ?
3.13 snowflake ?
3.13 spark ?
3.13 spark_connect ?
3.13 trino ?
cloud ?
docs-basic ?
docs-creds-needed ?
docs-spark ?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@codecov
Copy link
Copy Markdown

codecov bot commented Feb 17, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.13%. Comparing base (1d5164a) to head (c3cf96b).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop   #11661      +/-   ##
===========================================
- Coverage    84.25%   83.13%   -1.12%     
===========================================
  Files          472      473       +1     
  Lines        39727    39761      +34     
===========================================
- Hits         33471    33057     -414     
- Misses        6256     6704     +448     
Flag Coverage Δ
3.10 72.74% <58.82%> (-0.02%) ⬇️
3.10 athena 41.54% <52.94%> (+<0.01%) ⬆️
3.10 aws_deps 45.88% <52.94%> (+<0.01%) ⬆️
3.10 big 55.16% <52.94%> (-0.01%) ⬇️
3.10 bigquery ?
3.10 clickhouse 41.55% <52.94%> (+<0.01%) ⬆️
3.10 databricks ?
3.10 filesystem 63.92% <52.94%> (-0.01%) ⬇️
3.10 gx-redshift ?
3.10 mssql 52.47% <94.11%> (+0.05%) ⬆️
3.10 mysql 51.10% <52.94%> (+<0.01%) ⬆️
3.10 openpyxl or pyarrow or project or sqlite or aws_creds 59.23% <52.94%> (-0.01%) ⬇️
3.10 postgresql 54.74% <52.94%> (-0.01%) ⬇️
3.10 snowflake ?
3.10 spark 55.32% <52.94%> (-0.01%) ⬇️
3.10 spark_connect 46.38% <52.94%> (+<0.01%) ⬆️
3.10 trino 48.20% <52.94%> (+<0.01%) ⬆️
3.11 72.74% <58.82%> (-0.02%) ⬇️
3.11 athena ?
3.11 aws_deps ?
3.11 big ?
3.11 clickhouse ?
3.11 mssql ?
3.11 mysql ?
3.11 openpyxl or pyarrow or project or sqlite or aws_creds ?
3.11 spark_connect ?
3.12 72.75% <58.82%> (-0.02%) ⬇️
3.12 athena ?
3.12 aws_deps ?
3.12 big ?
3.12 filesystem ?
3.12 mssql ?
3.12 mysql ?
3.12 openpyxl or pyarrow or project or sqlite or aws_creds ?
3.12 spark_connect ?
3.13 72.73% <58.82%> (-0.03%) ⬇️
3.13 athena 41.54% <52.94%> (+<0.01%) ⬆️
3.13 aws_deps 45.88% <52.94%> (+<0.01%) ⬆️
3.13 big 55.16% <52.94%> (-0.01%) ⬇️
3.13 bigquery ?
3.13 clickhouse 41.55% <52.94%> (+<0.01%) ⬆️
3.13 databricks ?
3.13 filesystem 63.92% <52.94%> (-0.01%) ⬇️
3.13 gx-redshift ?
3.13 mssql 52.48% <94.11%> (+0.05%) ⬆️
3.13 mysql 51.10% <52.94%> (+<0.01%) ⬆️
3.13 openpyxl or pyarrow or project or sqlite or aws_creds 59.23% <52.94%> (-0.01%) ⬇️
3.13 postgresql 54.74% <52.94%> (-0.01%) ⬇️
3.13 snowflake ?
3.13 spark 55.32% <52.94%> (-0.01%) ⬇️
3.13 spark_connect 46.38% <52.94%> (+<0.01%) ⬆️
3.13 trino 48.20% <52.94%> (+<0.01%) ⬆️
cloud 0.00% <0.00%> (ø)
docs-basic ?
docs-creds-needed ?
docs-spark 56.62% <52.94%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@codecov
Copy link
Copy Markdown

codecov bot commented Feb 17, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 84.27%. Comparing base (1d5164a) to head (c3cf96b).
⚠️ Report is 2 commits behind head on develop.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop   #11661      +/-   ##
===========================================
+ Coverage    84.25%   84.27%   +0.01%     
===========================================
  Files          472      473       +1     
  Lines        39727    39761      +34     
===========================================
+ Hits         33471    33507      +36     
+ Misses        6256     6254       -2     
Flag Coverage Δ
3.10 72.74% <58.82%> (-0.02%) ⬇️
3.10 athena 41.54% <52.94%> (+<0.01%) ⬆️
3.10 aws_deps 45.88% <52.94%> (+<0.01%) ⬆️
3.10 big 55.16% <52.94%> (-0.01%) ⬇️
3.10 bigquery 50.68% <52.94%> (+<0.01%) ⬆️
3.10 clickhouse 41.55% <52.94%> (+<0.01%) ⬆️
3.10 databricks 52.44% <52.94%> (+<0.01%) ⬆️
3.10 filesystem 63.92% <52.94%> (-0.01%) ⬇️
3.10 gx-redshift 50.69% <52.94%> (+<0.01%) ⬆️
3.10 mssql 52.47% <94.11%> (+0.05%) ⬆️
3.10 mysql 51.10% <52.94%> (+<0.01%) ⬆️
3.10 openpyxl or pyarrow or project or sqlite or aws_creds 59.23% <52.94%> (-0.01%) ⬇️
3.10 postgresql 54.74% <52.94%> (-0.01%) ⬇️
3.10 snowflake 53.25% <52.94%> (-0.01%) ⬇️
3.10 spark 55.32% <52.94%> (-0.01%) ⬇️
3.10 spark_connect 46.38% <52.94%> (+<0.01%) ⬆️
3.10 trino 48.20% <52.94%> (+<0.01%) ⬆️
3.11 72.74% <58.82%> (-0.02%) ⬇️
3.11 athena ?
3.11 aws_deps ?
3.11 big ?
3.11 clickhouse ?
3.11 mssql ?
3.11 mysql ?
3.11 openpyxl or pyarrow or project or sqlite or aws_creds ?
3.11 spark_connect ?
3.12 72.75% <58.82%> (-0.02%) ⬇️
3.12 athena ?
3.12 aws_deps ?
3.12 big ?
3.12 filesystem ?
3.12 mssql ?
3.12 mysql ?
3.12 openpyxl or pyarrow or project or sqlite or aws_creds ?
3.12 spark_connect ?
3.13 72.73% <58.82%> (-0.03%) ⬇️
3.13 athena 41.54% <52.94%> (+<0.01%) ⬆️
3.13 aws_deps 45.88% <52.94%> (+<0.01%) ⬆️
3.13 big 55.16% <52.94%> (-0.01%) ⬇️
3.13 bigquery 50.69% <52.94%> (+<0.01%) ⬆️
3.13 clickhouse 41.55% <52.94%> (+<0.01%) ⬆️
3.13 databricks 52.44% <52.94%> (+<0.01%) ⬆️
3.13 filesystem 63.92% <52.94%> (-0.01%) ⬇️
3.13 gx-redshift 50.69% <52.94%> (+<0.01%) ⬆️
3.13 mssql 52.48% <94.11%> (+0.05%) ⬆️
3.13 mysql 51.10% <52.94%> (+<0.01%) ⬆️
3.13 openpyxl or pyarrow or project or sqlite or aws_creds 59.23% <52.94%> (-0.01%) ⬇️
3.13 postgresql 54.74% <52.94%> (-0.01%) ⬇️
3.13 snowflake 53.26% <52.94%> (-0.01%) ⬇️
3.13 spark 55.32% <52.94%> (-0.01%) ⬇️
3.13 spark_connect 46.38% <52.94%> (+<0.01%) ⬆️
3.13 trino 48.20% <52.94%> (+<0.01%) ⬆️
cloud 0.00% <0.00%> (ø)
docs-basic 58.51% <52.94%> (-0.01%) ⬇️
docs-creds-needed 57.49% <52.94%> (-0.01%) ⬇️
docs-spark 56.62% <52.94%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Copy Markdown
Contributor

@NathanFarmer NathanFarmer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good except for recent name changes

def __init__(self, cause: pyodbc.OperationalError) -> None:
super().__init__(
cause=cause,
message="Azure AD authentication failed. Verify your client ID, secret, and tenant ID.",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
message="Azure AD authentication failed. Verify your client ID, secret, and tenant ID.",
message="Entra ID authentication failed. Verify your client ID, secret, and tenant ID.",



@pytest.fixture
def azure_ad_service_principal_datasource() -> SQLServerDatasource:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
def azure_ad_service_principal_datasource() -> SQLServerDatasource:
def entra_id_service_principal_datasource() -> SQLServerDatasource:


@pytest.fixture
def azure_ad_service_principal_datasource() -> SQLServerDatasource:
"""SQL Server datasource with Azure AD Service Principal auth."""
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"""SQL Server datasource with Azure AD Service Principal auth."""
"""SQL Server datasource with Entra ID Service Principal auth."""

sql_server_datasource.test_connection()

@with_mock_engine_raising(sa.exc.OperationalError("Login failed for user", None, Exception()))
def test_login_failure_azure_ad_service_principal_raises_sql_principal_auth_error(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
def test_login_failure_azure_ad_service_principal_raises_sql_principal_auth_error(
def test_login_failure_entra_id_service_principal_raises_sql_principal_auth_error(

@tyler-hoffman tyler-hoffman added this pull request to the merge queue Feb 17, 2026
Merged via the queue into develop with commit ac15435 Feb 17, 2026
76 checks passed
@tyler-hoffman tyler-hoffman deleted the m/GX-2330/test-connection-errors branch February 17, 2026 18:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants