Fixes #29824: Ingest dbt pass results with null message - #29828
Fixes #29824: Ingest dbt pass results with null message#29828ayush-shah wants to merge 2 commits into
Conversation
❌ PR checklist incompleteThis PR cannot be merged until the following are addressed on its linked issue:
The fields live on the linked issue in the Shipping project (open the issue → right sidebar → Projects). After you set them, re-run this check (or push a commit) — issue/project changes do not re-trigger it automatically. Maintainers can bypass this check by adding the |
13e5936 to
2fc8c8e
Compare
|
The Python checkstyle failed. Please run You can install the pre-commit hooks with |
2fc8c8e to
ea4a9fb
Compare
|
The Python checkstyle failed. Please run You can install the pre-commit hooks with |
|
PR #26812 skipped every dbt test result with a null message to avoid compiled-only dbt run entries. dbt run_results.json can also contain executed passing data tests with status=pass and message=null, so those results were dropped after the 1.13 upgrade. Keep the compiled-only skip for status=success, and add a regression test for status=pass with a null message.
730719f to
ed6b2b7
Compare
|
Fresh author summary for current head |
Code Review ✅ ApprovedRefines dbt test-result ingestion to correctly process passing tests with null messages while maintaining filters for compiled-only entries. No issues found. OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
|
Additional case: multiple
|
|
Thanks @ziggekatten we will review and get back on the PR you have raised 🙏 |



Describe your changes:
Fixes #29824
RCA
PR #26812 added a guard in
add_dbt_test_result()to skip dbt run artifacts wheremessageis null/empty. That fixed compiled-only dbt entries produced bydbt run, where test nodes can appear asstatus=successwithmessage=nulleven though no test SQL executed.The guard was broader than the RCA: dbt
run_results.jsoncan also contain executed data tests withstatus=passandmessage=null. dbt's run-results docs show generic data test entries withstatus: pass,message: null, andfailures: 0.Because OpenMetadata strips non-required run-result keys before parsing,
failuresis not available in this method.statusis the discriminator we still have here.Fix
status=successand missingmessage.status=passand missingmessageto be ingested.status=pass, message=None.Type of change:
Checklist:
Fixes <issue-number>: <short explanation>Verification:
run_results.jsonentry withstatus="pass",message=null, execute timing, and a data-testunique_idis parsed withparse_run_resultsbefore ingestion.cd ingestion && nox --no-venv -s unit-tests -- tests/unit/test_dbt.py::TestAddDbtTestResultWithMissingMessage— 6 passed (Python 3.10).cd ingestion && nox --no-venv -s unit-tests— 7,681 tests; 0 failures/errors, 13 skipped.make py_format && make py_format_checkcd ingestion && nox --no-venv -s static-checks— 0 errors; only existing repository warnings.git diff --checkmvn -B clean package -pl openmetadata-service -am -Pstatic-code-analysis -DfailIfNoTests=false -Dsonar.skip=true— 6,635 tests; 0 failures/errors, 1 skipped.References:
Greptile Summary
This PR fixes ingestion of passing dbt test results with a null message. The main changes are:
status="success"and no message.status="pass"and no message.Confidence Score: 5/5
This looks safe to merge.
successentries from executedpassresults.Important Files Changed
passresults are ingested.Reviews (7): Last reviewed commit: "Merge branch 'main' into 29824-fix-dbt-n..." | Re-trigger Greptile
Context used (3)