Skip to content

Commit eb32a30

Browse files
authored
Merge pull request #408 from sadahry/log-own-custom-rules
feat: Log own custom rules
2 parents 7987ee8 + 11f8fda commit eb32a30

2 files changed

Lines changed: 30 additions & 2 deletions

File tree

docs/customization/issues-in-log.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,16 @@ The macro accepts two parameters:
1212
1313
- to pick between 2 types of formatting, set `format='table'` (default) or `format='csv'`
1414
- to add quotes to the database and schema (default = no quote), set ``quote='`'`` or `quote='"'`
15+
16+
## Logging your custom rules
17+
18+
You can also log the results of your custom rules by applying `dbt_project_evaluator.is_empty` to
19+
the custom models.
20+
21+
```yaml
22+
models:
23+
- name: my_custom_rule_model
24+
description: This is my custom project evaluator check
25+
tests:
26+
- dbt_project_evaluator.is_empty
27+
```

macros/on-run-end/print_dbt_project_evaluator_issues.sql

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,26 @@
33
{%- if flags.WHICH in ["build","test"] -%}
44
{{ print("\n### List of issues raised by dbt_project_evaluator ###") }}
55

6+
{#-
7+
if you create custom dbt_project_evaluator rules on your package using the test `dbt_project_evaluator.is_empty`,
8+
the test name should start with the same name as the default.
9+
-#}
10+
{% set test_name_prefix_of_custom_rules = var(
11+
"test_name_prefix_of_custom_rules",
12+
default="dbt_project_evaluator_is_empty_",
13+
) %}
14+
615
{% for result in results | selectattr('failures') | selectattr('failures', '>', 0) %}
716

8-
{% if result.node.fqn[0] == "dbt_project_evaluator" %}
17+
{% set is_test = result.node.config.materialized == "test" %}
18+
{% set package_name = result.node.package_name %}
19+
{% set resource_name = result.node.name %}
20+
{% if is_test and (
21+
package_name == "dbt_project_evaluator"
22+
or resource_name.startswith(test_name_prefix_of_custom_rules)
23+
) %}
924

10-
{{ print("\n-- " ~ result.node.alias ~ " --") }}
25+
{{ print("\n-- " ~ result.node.fqn | join(".") ~ " --") }}
1126

1227
{% set unique_id_model_checked = result.node.depends_on.nodes[0] %}
1328

0 commit comments

Comments
 (0)