Skip to content

Commit f53d45d

Browse files
authored
Merge pull request #1846 from elementary-data/add-reference-to-invocation-filters-in-send-report-summary
Consider invocation filters in the send-report summary
2 parents e978c16 + df4b087 commit f53d45d

2 files changed

Lines changed: 23 additions & 5 deletions

File tree

elementary/monitor/api/tests/tests.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
)
2727
from elementary.monitor.api.totals_schema import TotalsSchema
2828
from elementary.monitor.data_monitoring.schema import SelectorFilterSchema
29+
from elementary.monitor.fetchers.invocations.schema import DbtInvocationSchema
2930
from elementary.monitor.fetchers.tests.schema import (
3031
NormalizedTestSchema,
3132
TestDBRowSchema,
@@ -69,6 +70,7 @@ def _get_test_results_db_rows(
6970
def get_test_results_summary(
7071
self,
7172
filter: SelectorFilterSchema = SelectorFilterSchema(),
73+
dbt_invocation: Optional[DbtInvocationSchema] = None,
7274
) -> List[TestResultSummarySchema]:
7375
filtered_test_results_db_rows = self.test_results_db_rows
7476
if filter.tag:
@@ -93,11 +95,19 @@ def get_test_results_summary(
9395
)
9496
]
9597

96-
filtered_test_results_db_rows = [
97-
test_result
98-
for test_result in filtered_test_results_db_rows
99-
if test_result.invocations_rank_index == 1
100-
]
98+
if dbt_invocation and dbt_invocation.invocation_id:
99+
filtered_test_results_db_rows = [
100+
test_result
101+
for test_result in filtered_test_results_db_rows
102+
if test_result.invocation_id == dbt_invocation.invocation_id
103+
]
104+
else:
105+
filtered_test_results_db_rows = [
106+
test_result
107+
for test_result in filtered_test_results_db_rows
108+
if test_result.invocations_rank_index == 1
109+
]
110+
101111
return [
102112
TestResultSummarySchema(
103113
test_unique_id=test_result.test_unique_id,

elementary/monitor/data_monitoring/report/data_monitoring_report.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from elementary.clients.s3.client import S3Client
1111
from elementary.clients.slack.client import SlackClient
1212
from elementary.config.config import Config
13+
from elementary.monitor.api.invocations.invocations import InvocationsAPI
1314
from elementary.monitor.api.report.report import ReportAPI
1415
from elementary.monitor.api.report.schema import ReportDataSchema
1516
from elementary.monitor.api.tests.tests import TestsAPI
@@ -285,8 +286,15 @@ def send_test_results_summary(
285286
invocations_per_test=test_runs_amount,
286287
disable_passed_test_metrics=disable_passed_test_metrics,
287288
)
289+
invocations_api = InvocationsAPI(
290+
dbt_runner=self.internal_dbt_runner,
291+
)
292+
invocation = invocations_api.get_test_invocation_from_filter(
293+
self.selector_filter.to_selector_filter_schema()
294+
)
288295
summary_test_results = tests_api.get_test_results_summary(
289296
filter=self.selector_filter.to_selector_filter_schema(),
297+
dbt_invocation=invocation,
290298
)
291299
if self.slack_client:
292300
send_succeeded = self.slack_client.send_message(

0 commit comments

Comments
 (0)