Skip to content

Commit 70cbe55

Browse files
fix: extract test owner from primary model only (CORE-196)
Previously, the flatten_test macro collected owners from ALL parent models that a test references. This was incorrect for multi-parent tests like relationship tests, where only the primary model's owner should be attributed. Changes: - Remove owner collection from the parent models loop - Add owner extraction from the primary model inside the tested_model_node block - Keep tag collection from all parent models unchanged This ensures that: - Single parent tests: Owner attribution unchanged (backward compatible) - Multi-parent tests: Only primary model's owner shown - Relationship tests: Only the 'tested' model's owner attributed - Override scenarios: Respect override_primary_test_model_id configuration Co-Authored-By: Yosef Arbiv <[email protected]>
1 parent 8d91cf6 commit 70cbe55

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

macros/edr/dbt_artifacts/upload_dbt_tests.sql

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -83,23 +83,11 @@
8383
{% set test_models_tags = [] %}
8484
{% for test_model_node in test_model_nodes %}
8585
{% set flatten_test_model_node = elementary.flatten_node(test_model_node) %}
86-
{% set test_model_owner = flatten_test_model_node.get('owner') %}
87-
{% if test_model_owner %}
88-
{% if test_model_owner is string %}
89-
{% set owners = test_model_owner.split(',') %}
90-
{% for owner in owners %}
91-
{% do test_models_owners.append(owner | trim) %}
92-
{% endfor %}
93-
{% elif test_model_owner is iterable %}
94-
{% do test_models_owners.extend(test_model_owner) %}
95-
{% endif %}
96-
{% endif %}
9786
{% set test_model_tags = flatten_test_model_node.get('tags') %}
9887
{% if test_model_tags and test_model_tags is sequence %}
9988
{% do test_models_tags.extend(test_model_tags) %}
10089
{% endif %}
10190
{% endfor %}
102-
{% set test_models_owners = test_models_owners | unique | list %}
10391
{% set test_models_tags = test_models_tags | unique | list %}
10492

10593
{% set test_kwargs = elementary.safe_get_with_default(test_metadata, 'kwargs', {}) %}
@@ -143,6 +131,18 @@
143131
{% set primary_test_model_database = tested_model_node.get('database') %}
144132
{% set primary_test_model_schema = tested_model_node.get('schema') %}
145133
{% set group_name = group_name or tested_model_node.get('group') %}
134+
{% set flatten_primary_model_node = elementary.flatten_node(tested_model_node) %}
135+
{% set primary_model_owner = flatten_primary_model_node.get('owner') %}
136+
{% if primary_model_owner %}
137+
{% if primary_model_owner is string %}
138+
{% set owners = primary_model_owner.split(',') %}
139+
{% for owner in owners %}
140+
{% do test_models_owners.append(owner | trim) %}
141+
{% endfor %}
142+
{% elif primary_model_owner is iterable %}
143+
{% do test_models_owners.extend(primary_model_owner) %}
144+
{% endif %}
145+
{% endif %}
146146
{%- endif -%}
147147
{%- endif -%}
148148

0 commit comments

Comments
 (0)