Skip to content

test(ibis): type error expression before checking propagation - #34

Open
albert20260301 wants to merge 1 commit into
altertable-ai:mainfrom
albert20260301:fix/ibis-error-propagation-test
Open

albert20260301 wants to merge 1 commit into
altertable-ai:mainfrom
albert20260301:fix/ibis-error-propagation-test

Conversation

@albert20260301

Copy link
Copy Markdown
Contributor

Summary

Give the always-failing Ibis integration-test expression an explicit BIGINT result type. An untyped error expression can be described as "NULL", which Ibis represents as an unsupported unknown type; local result validation then stops execution before the intended remote error-propagation assertion.

This retains both assertions: schema discovery must not execute the expression, and execution must raise the original remote ApiError. Production code and type validation are unchanged.

Discovered while investigating #33. Kept separate from its workflow-policy changes.

Verification

  • Replayed the quoted-NULL schema through HTTP MockTransport: the original test reproduces the exact UnsupportedOperationError from ci: pin workflow runners and stabilize Ibis error test #33; the cast query reaches the remote request and preserves ApiError.
  • 20 Ibis/query-error/Parquet tests pass locally; Ruff and Mypy pass.
  • DuckDB DESCRIBE accepts the cast without executing the expression; executing it still raises the requested error.
  • Full real-mock integration suite is not available locally (no container runtime); GitHub CI must verify it before review.

@albert20260301

Copy link
Copy Markdown
Contributor Author

Python 3.12 completed all 43 tests against the real mock with this correction (job log). The matrix is not green: Ubuntu 26.04 cannot provision Python 3.9, and matrix failure cancelled other lanes.

The existing runner-pinning PR #33 now includes this same test correction so both blockers can be verified together. Keep review on #33 once its CI is green; after it merges, this standalone diagnostic PR can be closed by a maintainer. No rerun requested.

fvaleye pushed a commit that referenced this pull request Nov 2, 2026
## Summary
- Use `ubuntu-24.04` for Linux jobs instead of the moving
`ubuntu-latest` image.
- Pin the existing third-party action references to their resolved
40-character commit SHAs, keeping the original references in comments.
- Keep job behavior, permissions, Python versions and release conditions
unchanged.

## Verification
- Workflow policy validator, YAML parsing and final diff checks pass.
- 20 focused Ibis/query-error/Parquet tests, Ruff and Mypy pass locally.
- Quoted-NULL schema replay reproduces the original failure; explicit
BIGINT cast reaches the remote ApiError.
- Separate test-only #34 ran all 43 tests successfully on Python 3.12
against the real mock, but Ubuntu 26.04 cannot provision Python 3.9,
cancelling the remaining matrix. No full-matrix success claim.

## CI diagnosis and correction
The initial pinned-runner CI failed one Python 3.11 test (42 passed / 1
failed); the other five matrix jobs were cancelled. An untyped error
expression was described as quoted `"NULL"`, rejected by Ibis before
remote execution. This PR now includes the focused test correction from
#34: cast the always-failing expression to BIGINT, retaining discovery
and remote-error assertions without changing production type guards.

The unpinned main workflow separately fails setup-python on Ubuntu 26.04
for Python 3.9. Keeping the test correction with the already-proposed
Ubuntu 24.04/action pins allows the full supported matrix to run. New CI
from the substantive test commit must pass before this draft is marked
ready. No workflow reruns or artificial trigger commits.
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.

1 participant