|
1 | | -{%- macro get_test_results(days_back = 7, invocations_per_test = 720, disable_passed_test_metrics = false) -%} |
2 | | - {{ return(adapter.dispatch('get_test_results', 'elementary_cli')(days_back, invocations_per_test, disable_passed_test_metrics)) }} |
| 1 | +{%- macro get_test_results(days_back = 7, invocations_per_test = 720, disable_passed_test_metrics = false, skip_test_result_rows = false) -%} |
| 2 | + {{ return(adapter.dispatch('get_test_results', 'elementary_cli')(days_back, invocations_per_test, disable_passed_test_metrics, skip_test_result_rows)) }} |
3 | 3 | {%- endmacro -%} |
4 | 4 |
|
5 | 5 | {# |
6 | 6 | Shared post-processing helper: filters tests by meta, attaches sample data. |
7 | 7 | Called by both default__ and fabric__ dispatches to avoid duplicating the |
8 | 8 | Jinja processing loop. |
9 | 9 | #} |
10 | | -{%- macro _process_raw_test_results(test_results_agate, test_result_rows_agate, elementary_tests_allowlist_status) -%} |
| 10 | +{%- macro _process_raw_test_results(test_results_agate, test_result_rows_agate, elementary_tests_allowlist_status, skip_test_result_rows = false) -%} |
11 | 11 | {% set test_results = [] %} |
12 | 12 | {% set tests = elementary.agate_to_dicts(test_results_agate) %} |
13 | 13 |
|
|
26 | 26 | {% set test_params = fromjson(test.test_params) %} |
27 | 27 | {% set status = test.status | lower %} |
28 | 28 |
|
29 | | - {%- if (test_type == 'dbt_test' and status in ['fail', 'warn']) or (test_type != 'dbt_test' and status in elementary_tests_allowlist_status) -%} |
| 29 | + {%- if not skip_test_result_rows and ((test_type == 'dbt_test' and status in ['fail', 'warn']) or (test_type != 'dbt_test' and status in elementary_tests_allowlist_status)) -%} |
30 | 30 | {% set test_rows_sample = elementary_cli.get_test_rows_sample(test.result_rows, test_result_rows_agate.get(test.id)) %} |
31 | 31 | {%- endif -%} |
32 | 32 | {% else %} |
|
40 | 40 | {% do return(test_results) %} |
41 | 41 | {%- endmacro -%} |
42 | 42 |
|
43 | | -{%- macro default__get_test_results(days_back = 7, invocations_per_test = 720, disable_passed_test_metrics = false) -%} |
| 43 | +{%- macro default__get_test_results(days_back = 7, invocations_per_test = 720, disable_passed_test_metrics = false, skip_test_result_rows = false) -%} |
44 | 44 | {% set elementary_tests_allowlist_status = ['fail', 'warn'] if disable_passed_test_metrics else ['fail', 'warn', 'pass'] %} |
45 | 45 | {% set select_test_results %} |
46 | 46 | with test_results as ( |
47 | | - {{ elementary_cli.current_tests_run_results_query(days_back=days_back) }} |
| 47 | + {{ elementary_cli.current_tests_run_results_query(days_back=days_back, skip_test_result_rows=skip_test_result_rows) }} |
48 | 48 | ), |
49 | 49 |
|
50 | 50 | ordered_test_results as ( |
|
111 | 111 | {% endset %} |
112 | 112 |
|
113 | 113 | {% set test_results_agate = elementary.run_query(test_results_agate_sql) %} |
114 | | - {% set test_result_rows_agate = elementary_cli.get_result_rows_agate(days_back, valid_ids_query) %} |
| 114 | + {% if not skip_test_result_rows %} |
| 115 | + {% set test_result_rows_agate = elementary_cli.get_result_rows_agate(days_back, valid_ids_query) %} |
| 116 | + {% else %} |
| 117 | + {% set test_result_rows_agate = {} %} |
| 118 | + {% endif %} |
115 | 119 | {% if not elementary.has_temp_table_support() %} |
116 | 120 | {% do elementary.fully_drop_relation(ordered_test_results_relation) %} |
117 | 121 | {% endif %} |
118 | 122 |
|
119 | | - {% do return(elementary_cli._process_raw_test_results(test_results_agate, test_result_rows_agate, elementary_tests_allowlist_status)) %} |
| 123 | + {% do return(elementary_cli._process_raw_test_results(test_results_agate, test_result_rows_agate, elementary_tests_allowlist_status, skip_test_result_rows)) %} |
120 | 124 | {%- endmacro -%} |
121 | 125 |
|
122 | | -{%- macro fabric__get_test_results(days_back = 7, invocations_per_test = 720, disable_passed_test_metrics = false) -%} |
| 126 | +{%- macro fabric__get_test_results(days_back = 7, invocations_per_test = 720, disable_passed_test_metrics = false, skip_test_result_rows = false) -%} |
123 | 127 | {# |
124 | 128 | T-SQL does not allow nested CTEs (WITH inside WITH). |
125 | 129 | current_tests_run_results_query already starts with WITH, so we |
|
132 | 136 |
|
133 | 137 | {# Step 1 – materialise the base test-results query into a temp table #} |
134 | 138 | {% set base_query %} |
135 | | - {{ elementary_cli.current_tests_run_results_query(days_back=days_back) }} |
| 139 | + {{ elementary_cli.current_tests_run_results_query(days_back=days_back, skip_test_result_rows=skip_test_result_rows) }} |
136 | 140 | {% endset %} |
137 | 141 |
|
138 | 142 | {% set elementary_database, elementary_schema = elementary.get_package_database_and_schema() %} |
|
165 | 169 | {% endset %} |
166 | 170 |
|
167 | 171 | {% set test_results_agate = elementary.run_query(test_results_agate_sql) %} |
168 | | - {% set test_result_rows_agate = elementary_cli.get_result_rows_agate(days_back, valid_ids_query) %} |
| 172 | + {% if not skip_test_result_rows %} |
| 173 | + {% set test_result_rows_agate = elementary_cli.get_result_rows_agate(days_back, valid_ids_query) %} |
| 174 | + {% else %} |
| 175 | + {% set test_result_rows_agate = {} %} |
| 176 | + {% endif %} |
169 | 177 |
|
170 | 178 | {# Clean up intermediate tables #} |
171 | 179 | {% do elementary.fully_drop_relation(base_relation) %} |
172 | 180 | {% do elementary.fully_drop_relation(ordered_relation) %} |
173 | 181 |
|
174 | | - {% do return(elementary_cli._process_raw_test_results(test_results_agate, test_result_rows_agate, elementary_tests_allowlist_status)) %} |
| 182 | + {% do return(elementary_cli._process_raw_test_results(test_results_agate, test_result_rows_agate, elementary_tests_allowlist_status, skip_test_result_rows)) %} |
175 | 183 | {%- endmacro -%} |
176 | 184 |
|
177 | | -{%- macro clickhouse__get_test_results(days_back = 7, invocations_per_test = 720, disable_passed_test_metrics = false) -%} |
| 185 | +{%- macro clickhouse__get_test_results(days_back = 7, invocations_per_test = 720, disable_passed_test_metrics = false, skip_test_result_rows = false) -%} |
| 186 | + {% set elementary_tests_allowlist_status = ['fail', 'warn'] if disable_passed_test_metrics else ['fail', 'warn', 'pass'] %} |
178 | 187 | {% do elementary.run_query('drop table if exists ordered_test_results') %} |
179 | 188 | {% set create_table_query %} |
180 | 189 | CREATE TABLE ordered_test_results ( |
|
262 | 271 | {{ elementary.edr_datediff(elementary.edr_cast_as_timestamp('etr.detected_at'), elementary.edr_current_timestamp(), 'day') }} AS days_diff, |
263 | 272 | ROW_NUMBER() OVER (PARTITION BY elementary_unique_id ORDER BY etr.detected_at DESC) AS invocations_rank_index, |
264 | 273 | etr.failures, |
265 | | - etr.result_rows |
| 274 | + {% if skip_test_result_rows %}''{% else %}etr.result_rows{% endif %} AS result_rows |
266 | 275 | FROM {{ ref('elementary', 'elementary_test_results') }} etr |
267 | 276 | JOIN {{ ref('elementary', 'dbt_tests') }} dt ON etr.test_unique_id = dt.unique_id |
268 | 277 | LEFT JOIN ( |
|
302 | 311 | {% endset %} |
303 | 312 |
|
304 | 313 | {% set test_results_agate = elementary.run_query(test_results_agate_sql) %} |
305 | | - {% set test_result_rows_agate = elementary_cli.get_result_rows_agate(days_back, valid_ids_query) %} |
| 314 | + {% if not skip_test_result_rows %} |
| 315 | + {% set test_result_rows_agate = elementary_cli.get_result_rows_agate(days_back, valid_ids_query) %} |
| 316 | + {% else %} |
| 317 | + {% set test_result_rows_agate = {} %} |
| 318 | + {% endif %} |
306 | 319 | {% if not elementary.has_temp_table_support() %} |
307 | 320 | {% do elementary.fully_drop_relation(ordered_test_results_relation) %} |
308 | 321 | {% endif %} |
309 | 322 |
|
310 | | - {% do return(elementary_cli._process_raw_test_results(test_results_agate, test_result_rows_agate, elementary_tests_allowlist_status)) %} |
| 323 | + {% do return(elementary_cli._process_raw_test_results(test_results_agate, test_result_rows_agate, elementary_tests_allowlist_status, skip_test_result_rows)) %} |
311 | 324 | {%- endmacro -%} |
0 commit comments