in scripts/metric_reporter/reporter/suite_reporter.py [0:0]
def update_table(self, client: Client, project_id: str, dataset_name: str) -> None:
"""Update the BigQuery table with new results.
Args:
client (Client): The BigQuery client to interact with BigQuery.
project_id (str): The BigQuery project ID.
dataset_name (str): The BigQuery dataset name.
"""
table_id = (
f"{project_id}.{dataset_name}.{self._normalize_name(self.repository)}_suite_results"
)
if not self.results:
self.logger.warning(
f"There are no results for {self.repository}/{self.workflow}/{self.test_suite} to "
f"add to {table_id}."
)
return
last_update: datetime | None = self._get_last_update(client, table_id)
# If no 'last_update' insert all results, else insert results that occur after the last
# update timestamp
new_results: Sequence[SuiteReporterResult] = (
self.results
if not last_update
else [
r
for r in self.results
if r.timestamp and datetime.strptime(r.timestamp, DATETIME_FORMAT) > last_update
]
)
if not new_results:
self.logger.warning(
f"There are no new results for {self.repository}/{self.workflow}/{self.test_suite} "
f"to add to {table_id}."
)
return
self._insert_rows(client, table_id, new_results)