feat: sync latest ARR implementation
This commit is contained in:
@@ -2,18 +2,45 @@ from __future__ import annotations
|
||||
|
||||
import unittest
|
||||
|
||||
from arr_web.repository import DAILY_DOWNLOAD_SQL, JOBS_SQL, MONTHLY_RUNS_SQL
|
||||
from arr_web.repository import (
|
||||
DAILY_DOWNLOAD_SQL,
|
||||
JOBS_COUNT_SQL,
|
||||
JOBS_SQL,
|
||||
JOB_TRACE_ATTEMPTS_SQL,
|
||||
JOB_TRACE_DELIVERIES_SQL,
|
||||
JOB_TRACE_OUTBOX_SQL,
|
||||
JOB_TRACE_RUN_SQL,
|
||||
JOB_TRACE_SUBMISSIONS_SQL,
|
||||
JOB_TRACE_VERSIONS_SQL,
|
||||
MONTHLY_DOWNLOAD_SQL,
|
||||
MONTHLY_RUNS_COUNT_SQL,
|
||||
MONTHLY_RUNS_SQL,
|
||||
)
|
||||
|
||||
|
||||
class PortalRepositorySchemaTests(unittest.TestCase):
|
||||
def test_queries_use_arr_mvp_v1_relations(self) -> None:
|
||||
sql = " ".join((JOBS_SQL, DAILY_DOWNLOAD_SQL, MONTHLY_RUNS_SQL))
|
||||
sql = " ".join(
|
||||
(
|
||||
JOBS_SQL,
|
||||
JOBS_COUNT_SQL,
|
||||
DAILY_DOWNLOAD_SQL,
|
||||
MONTHLY_DOWNLOAD_SQL,
|
||||
MONTHLY_RUNS_SQL,
|
||||
MONTHLY_RUNS_COUNT_SQL,
|
||||
JOB_TRACE_RUN_SQL,
|
||||
JOB_TRACE_ATTEMPTS_SQL,
|
||||
JOB_TRACE_DELIVERIES_SQL,
|
||||
JOB_TRACE_SUBMISSIONS_SQL,
|
||||
JOB_TRACE_VERSIONS_SQL,
|
||||
JOB_TRACE_OUTBOX_SQL,
|
||||
)
|
||||
)
|
||||
for required in (
|
||||
"ingestion.processing_runs",
|
||||
"ingestion.artifacts",
|
||||
"finance.daily_versions",
|
||||
"finance.v_active_daily_facts",
|
||||
"finance.current_daily_versions",
|
||||
"reporting.monthly_runs",
|
||||
):
|
||||
with self.subTest(required=required):
|
||||
self.assertIn(required, sql)
|
||||
@@ -27,6 +54,54 @@ class PortalRepositorySchemaTests(unittest.TestCase):
|
||||
with self.subTest(removed=removed):
|
||||
self.assertNotIn(removed, sql)
|
||||
|
||||
def test_history_queries_count_and_page_in_the_same_repository_contract(self) -> None:
|
||||
self.assertIn("count(*)", JOBS_COUNT_SQL.lower())
|
||||
self.assertIn("count(*)", MONTHLY_RUNS_COUNT_SQL.lower())
|
||||
self.assertIn("limit %s offset %s", JOBS_SQL.lower())
|
||||
self.assertIn("limit %s offset %s", MONTHLY_RUNS_SQL.lower())
|
||||
self.assertIn("run.as_of_date AS max_arrival_date", MONTHLY_RUNS_SQL)
|
||||
|
||||
def test_job_trace_queries_expose_only_diagnostic_columns(self) -> None:
|
||||
trace_sql = " ".join(
|
||||
(
|
||||
JOB_TRACE_RUN_SQL,
|
||||
JOB_TRACE_ATTEMPTS_SQL,
|
||||
JOB_TRACE_DELIVERIES_SQL,
|
||||
JOB_TRACE_SUBMISSIONS_SQL,
|
||||
JOB_TRACE_VERSIONS_SQL,
|
||||
JOB_TRACE_OUTBOX_SQL,
|
||||
)
|
||||
).lower()
|
||||
for required in (
|
||||
"ingestion.processing_attempts",
|
||||
"ingestion.processing_deliveries",
|
||||
"ingestion.result_submissions",
|
||||
"ingestion.outbox_events",
|
||||
"finance.daily_versions",
|
||||
):
|
||||
self.assertIn(required, trace_sql)
|
||||
for private_column in (
|
||||
"object_key",
|
||||
"delivery_json",
|
||||
"envelope_json",
|
||||
"payload_json",
|
||||
"receipt_json",
|
||||
"grant_sha256",
|
||||
):
|
||||
self.assertNotIn(private_column, trace_sql)
|
||||
|
||||
def test_job_history_and_trace_are_limited_to_daily_processing_runs(self) -> None:
|
||||
daily_pipeline_filter = "run.pipeline_type = 'opera_daily'"
|
||||
self.assertIn(daily_pipeline_filter, JOBS_SQL)
|
||||
self.assertIn(daily_pipeline_filter, JOBS_COUNT_SQL)
|
||||
self.assertIn(daily_pipeline_filter, JOB_TRACE_RUN_SQL)
|
||||
|
||||
def test_daily_filename_uses_uploaded_provenance_not_internal_artifact_name(self) -> None:
|
||||
self.assertIn("run.uploaded_filename", JOBS_SQL)
|
||||
self.assertIn("run.uploaded_filename", JOB_TRACE_RUN_SQL)
|
||||
self.assertNotIn("source.original_filename", JOBS_SQL)
|
||||
self.assertNotIn("source.original_filename", JOB_TRACE_RUN_SQL)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main(verbosity=2)
|
||||
|
||||
Reference in New Issue
Block a user