From 024b8a5a8988f96c9d54b7a9e6fd447f34df707c Mon Sep 17 00:00:00 2001 From: Tori Wei Date: Fri, 26 Sep 2025 14:06:38 -0700 Subject: [PATCH] normalize canonical name for audits --- sqlmesh/dbt/test.py | 2 +- tests/dbt/test_config.py | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/sqlmesh/dbt/test.py b/sqlmesh/dbt/test.py index 1bd8a8e6e2..7d8a369068 100644 --- a/sqlmesh/dbt/test.py +++ b/sqlmesh/dbt/test.py @@ -111,7 +111,7 @@ def _lowercase_name(cls, v: str) -> str: @property def canonical_name(self) -> str: - return f"{self.package_name}.{self.name}" if self.package_name else self.name + return f"{self.package_name}.{self.name}".lower() if self.package_name else self.name @property def is_standalone(self) -> bool: diff --git a/tests/dbt/test_config.py b/tests/dbt/test_config.py index c484b8e126..b3ee0c422a 100644 --- a/tests/dbt/test_config.py +++ b/tests/dbt/test_config.py @@ -245,6 +245,31 @@ def test_test_to_sqlmesh_fields(): assert audit.dialect == "bigquery" +def test_test_config_canonical_name(): + test_config_upper_case_package = TestConfig( + name="foo_test", + package_name="TEST_PACKAGE", + sql="SELECT 1", + ) + + assert test_config_upper_case_package.canonical_name == "test_package.foo_test" + + test_config_mixed_case_package = TestConfig( + name="Bar_Test", + package_name="MixedCase_Package", + sql="SELECT 1", + ) + + assert test_config_mixed_case_package.canonical_name == "mixedcase_package.bar_test" + + test_config_no_package = TestConfig( + name="foo_bar_test", + sql="SELECT 1", + ) + + assert test_config_no_package.canonical_name == "foo_bar_test" + + def test_singular_test_to_standalone_audit(dbt_dummy_postgres_config: PostgresConfig): sql = "SELECT * FROM FOO.BAR WHERE cost > 100" test_config = TestConfig(