Skip to content

@W-23751646: Modernize Python native binding tests and runtime - #161

Merged
mlischetti merged 30 commits into
masterfrom
python-binding-modernization
Aug 21, 2026
Merged

@W-23751646: Modernize Python native binding tests and runtime#161
mlischetti merged 30 commits into
masterfrom
python-binding-modernization

Conversation

@mlischetti

@mlischetti mlischetti commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Migrate the Python native-binding test suite from the legacy executable script to pytest unit and native integration coverage.
  • Separate the binding implementation into focused modules: models.py, encoding.py, native.py, and runtime.py, while retaining the public dataweave facade.
  • Harden native lifecycle and streaming behavior: bounded stream cleanup, context-manager support, per-worker isolate attachment, callback error translation, and oversized callback-buffer rejection.
  • Add a Python TCK conformance lane that reuses the staged Node TCK corpus on master only.
  • Classify Python TCK limitations explicitly: 39 capability skips, 13 structural module-case skips, and 19 strict expected runtime/output xfails. Unexpected failures and XPASS results fail the lane.
  • Update CI so Python and Node binding TCK lanes can still produce diagnostic results after an earlier binding failure; the workflow aggregates those failures before completing the job.
  • Update Python binding documentation and examples to match the supported API.

Verification

  • ./gradlew native-lib:test
    • 846 passed, 59 skipped
  • ./gradlew native-lib:pythonTest --rerun-tasks
    • 81 passed
  • ./gradlew native-lib:stageTckSuites native-lib:pythonTck
    • 696 passed, 39 skipped, 19 xfailed
    • TCK execution summary: 673 executed scenarios passed, with no unexpected failures or XPASS results.

TCK Policy

Python skips only cases that cannot execute deterministically because the native binding does not provide the required test-only DW module resolver, Java module, or classpath fixture. Known executable runtime/output differences remain strict xfails so regressions and newly resolved mismatches are visible to CI.

@mlischetti
mlischetti requested a review from a team as a code owner August 20, 2026 14:17
@mlischetti mlischetti changed the title Modernize Python native binding tests and runtime @W-23751646: Modernize Python native binding tests and runtime Aug 20, 2026
@mlischetti
mlischetti merged commit f14022b into master Aug 21, 2026
5 checks passed
@mlischetti
mlischetti deleted the python-binding-modernization branch August 21, 2026 13:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants