From 08a6f8b4b43599e06050478a7f210133c0380fcc Mon Sep 17 00:00:00 2001 From: Sung Won Chung Date: Mon, 10 Mar 2025 15:49:40 -0700 Subject: [PATCH 1/5] add nomissingaudits rule --- docs/guides/linter.md | 12 +++++++----- docs/guides/linter_example.png | Bin 0 -> 115944 bytes sqlmesh/core/linter/rules/builtin.py | 7 +++++++ tests/core/test_model.py | 25 +++++++++++++++++++++++++ 4 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 docs/guides/linter_example.png diff --git a/docs/guides/linter.md b/docs/guides/linter.md index 023d6bdee9..5506b244eb 100644 --- a/docs/guides/linter.md +++ b/docs/guides/linter.md @@ -1,5 +1,7 @@ # Linter guide +![Linter](linter_example.png) + Linting is a powerful tool for improving code quality and consistency. It enables you to automatically validate model definition, ensuring they adhere to your team's best practices. When a SQLMesh command is executed and the project is loaded, each model's code is checked for compliance with a set of rules you choose. @@ -71,7 +73,7 @@ Here are all of SQLMesh's built-in linting rules: | ambiguousorinvalidcolumn | Correctness | SQLMesh found duplicate columns or was unable to determine whether a column is duplicated or not | | invalidselectstarexpansion | Correctness | The query's top-level selection may be `SELECT *`, but only if SQLMesh can expand the `SELECT *` into individual columns | | noselectstar | Stylistic | The query's top-level selection may not be `SELECT *`, even if SQLMesh can expand the `SELECT *` into individual columns | - +| nomissingaudits | Governance | SQLMesh did not find any `audits` in the model's configuration to test data quality. | ### User-defined rules @@ -211,7 +213,7 @@ MODEL( Linting rule violations raise an error by default, preventing the project from running until the violation is addressed. -You may specify that a rule's violation should not error and only log a warning by specifying it in the `warning_rules` key instead of the `rules` key. +You may specify that a rule's violation should not error and only log a warning by specifying it in the `warn_rules` key instead of the `rules` key. === "YAML" @@ -221,7 +223,7 @@ You may specify that a rule's violation should not error and only log a warning # error if `ambiguousorinvalidcolumn` rule violated rules: ["ambiguousorinvalidcolumn"] # but only warn if "invalidselectstarexpansion" is violated - warning_rules: ["invalidselectstarexpansion"] + warn_rules: ["invalidselectstarexpansion"] ``` === "Python" @@ -235,9 +237,9 @@ You may specify that a rule's violation should not error and only log a warning # error if `ambiguousorinvalidcolumn` rule violated rules=["ambiguousorinvalidcolumn"], # but only warn if "invalidselectstarexpansion" is violated - warning_rules=["invalidselectstarexpansion"], + warn_rules=["invalidselectstarexpansion"], ) ) ``` -SQLMesh will raise an error if the same rule is included in more than one of the `rules`, `warning_rules`, and `ignored_rules` keys since they should be mutually exclusive. \ No newline at end of file +SQLMesh will raise an error if the same rule is included in more than one of the `rules`, `warn_rules`, and `ignored_rules` keys since they should be mutually exclusive. \ No newline at end of file diff --git a/docs/guides/linter_example.png b/docs/guides/linter_example.png new file mode 100644 index 0000000000000000000000000000000000000000..d88ea1bac9888a14b66ba62c893ffe9923c5f281 GIT binary patch literal 115944 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 t.Optional[RuleViolation]: return self.violation(violation_msg) +class NoMissingAudits(Rule): + """Model `audits` must be configured to test data quality.""" + + def check_model(self, model: Model) -> t.Optional[RuleViolation]: + return self.violation() if not model.audits else None + + BUILTIN_RULES = RuleSet(subclasses(__name__, Rule, (Rule,))) diff --git a/tests/core/test_model.py b/tests/core/test_model.py index 8c6e763f39..446ce86723 100644 --- a/tests/core/test_model.py +++ b/tests/core/test_model.py @@ -307,6 +307,31 @@ def test_model_qualification(tmp_path: Path): ) +@use_terminal_console +def test_model_missing_audits(tmp_path: Path): + with patch.object(get_console(), "log_warning") as mock_logger: + expressions = d.parse( + """ + MODEL ( + name db.table, + kind FULL, + ); + + SELECT a + """ + ) + + ctx = Context( + config=Config(linter=LinterConfig(enabled=True, warn_rules=["nomissingaudits"])), paths=tmp_path + ) + ctx.upsert_model(load_sql_based_model(expressions)) + + assert ( + """Model `audits` must be configured to test data quality.""" + in mock_logger.call_args[0][0] + ) + + @pytest.mark.parametrize( "partition_by_input, partition_by_output, output_dialect, expected_exception", [ From e4c0a710e1787106d501e364c9f05f0a19477e95 Mon Sep 17 00:00:00 2001 From: Sung Won Chung Date: Mon, 10 Mar 2025 16:03:50 -0700 Subject: [PATCH 2/5] better format --- docs/guides/linter.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/guides/linter.md b/docs/guides/linter.md index 5506b244eb..c5b6a00019 100644 --- a/docs/guides/linter.md +++ b/docs/guides/linter.md @@ -70,10 +70,10 @@ Here are all of SQLMesh's built-in linting rules: | Name | Check type | Explanation | | -------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------ | -| ambiguousorinvalidcolumn | Correctness | SQLMesh found duplicate columns or was unable to determine whether a column is duplicated or not | -| invalidselectstarexpansion | Correctness | The query's top-level selection may be `SELECT *`, but only if SQLMesh can expand the `SELECT *` into individual columns | -| noselectstar | Stylistic | The query's top-level selection may not be `SELECT *`, even if SQLMesh can expand the `SELECT *` into individual columns | -| nomissingaudits | Governance | SQLMesh did not find any `audits` in the model's configuration to test data quality. | +| `ambiguousorinvalidcolumn` | Correctness | SQLMesh found duplicate columns or was unable to determine whether a column is duplicated or not | +| `invalidselectstarexpansion` | Correctness | The query's top-level selection may be `SELECT *`, but only if SQLMesh can expand the `SELECT *` into individual columns | +| `noselectstar` | Stylistic | The query's top-level selection may not be `SELECT *`, even if SQLMesh can expand the `SELECT *` into individual columns | +| `nomissingaudits` | Governance | SQLMesh did not find any `audits` in the model's configuration to test data quality. | ### User-defined rules From 8239f8896f6e40e8a7598dce9e4c56ffdf205692 Mon Sep 17 00:00:00 2001 From: Sung Won Chung Date: Mon, 10 Mar 2025 16:06:46 -0700 Subject: [PATCH 3/5] another ruff fix --- tests/core/test_model.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/core/test_model.py b/tests/core/test_model.py index 446ce86723..9431eef30e 100644 --- a/tests/core/test_model.py +++ b/tests/core/test_model.py @@ -322,7 +322,8 @@ def test_model_missing_audits(tmp_path: Path): ) ctx = Context( - config=Config(linter=LinterConfig(enabled=True, warn_rules=["nomissingaudits"])), paths=tmp_path + config=Config(linter=LinterConfig(enabled=True, warn_rules=["nomissingaudits"])), + paths=tmp_path, ) ctx.upsert_model(load_sql_based_model(expressions)) From 53ff5eb22759c51c3dc5b0be1eb86e6015ddb90e Mon Sep 17 00:00:00 2001 From: Sung Won Chung Date: Mon, 10 Mar 2025 17:37:27 -0700 Subject: [PATCH 4/5] fix test --- tests/core/test_context.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/tests/core/test_context.py b/tests/core/test_context.py index eae4e71936..a959551edf 100644 --- a/tests/core/test_context.py +++ b/tests/core/test_context.py @@ -1676,7 +1676,9 @@ def assert_cached_violations_exist(cache: OptimizedQueryCache, model: Model): # Case: Ensure NoSelectStar only raises for top-level SELECTs, new model shouldn't raise # and thus should also be cached model2 = load_sql_based_model( - d.parse("MODEL (name test2); SELECT col FROM (SELECT * FROM tbl)") + d.parse( + "MODEL (name test2, audits (at_least_one(column := col))); SELECT col FROM (SELECT * FROM tbl)" + ) ) ctx.upsert_model(model2) @@ -1739,7 +1741,7 @@ def assert_cached_violations_exist(cache: OptimizedQueryCache, model: Model): create_temp_file( tmp_path, pathlib.Path(pathlib.Path("models"), "test2.sql"), - "MODEL(name test2, ignored_rules ['noselectstar']); SELECT * FROM (SELECT 1 AS col);", + "MODEL(name test2, audits (at_least_one(column := col)), ignored_rules ['noselectstar']); SELECT * FROM (SELECT 1 AS col);", ) ctx.load() @@ -1761,6 +1763,7 @@ def assert_cached_violations_exist(cache: OptimizedQueryCache, model: Model): def model3_entrypoint(evaluator: MacroEvaluator) -> str: return "select * from model1" + # breakpoint() model3 = model.get_registry()["memory.sushi.model3"].model( module_path=Path("."), path=Path(".") ) @@ -1777,7 +1780,12 @@ def model4_entrypoint(context, **kwargs): with pytest.raises(LinterError, match=config_err): sushi_context.upsert_model(python_model) - @model(name="memory.sushi.model5", columns={"col": "int"}, owner="test") + @model( + name="memory.sushi.model5", + columns={"col": "int"}, + owner="test", + audits=[("at_least_one", {"column": "col"})], + ) def model5_entrypoint(context, **kwargs): yield pd.DataFrame({"col": []}) From 4e9360617dddd51de696de32e106ba8e4452af80 Mon Sep 17 00:00:00 2001 From: Sung Won Chung Date: Tue, 11 Mar 2025 09:14:46 -0700 Subject: [PATCH 5/5] remove the stray --- tests/core/test_context.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/core/test_context.py b/tests/core/test_context.py index a959551edf..ea4fdd9432 100644 --- a/tests/core/test_context.py +++ b/tests/core/test_context.py @@ -1763,7 +1763,6 @@ def assert_cached_violations_exist(cache: OptimizedQueryCache, model: Model): def model3_entrypoint(evaluator: MacroEvaluator) -> str: return "select * from model1" - # breakpoint() model3 = model.get_registry()["memory.sushi.model3"].model( module_path=Path("."), path=Path(".") )