Visitar URL original
tests: no skip stands for a feature the wheel ships, and CI fails any skip nobody accepted (#207) by tae898 · Pull Request #208 · humemai/arcadedb-embedded-python · GitHub
Skip to content

tests: no skip stands for a feature the wheel ships, and CI fails any skip nobody accepted (#207) - #208

Merged
tae898 merged 3 commits into
mainfrom
test-no-always-skip
Oct 6, 2026
Merged

tae898 merged 3 commits into
mainfrom
test-no-always-skip

Conversation

@tae898

@tae898 tae898 commented Oct 6, 2026 •

Copy link
Copy Markdown

Fixes #207.

About twenty tests skipped when the engine raised an error or returned nothing, and the testing overview itself said a wrong empty answer showed up as a skip. None of those skips fires on 26.10.1, so the branches could only hide a future regression. They are plain assertions now: OpenCypher (including the empty collect/UNWIND result and the null pattern comprehension), the geo and graph-algorithm SQL functions, time series, the HASH index, vector encodings and byte ingest, LSM_SPARSE_VECTOR, the Neo4j, Word2Vec, RDF, and time-series importers with their fixture checks, the server stack, and the JVM payload check. The Windows XML and RDF import skips never fire (both tests pass on every Windows job) and are removed.

Deleted, not skipped: the two GraphML/GraphSON positive export tests, the graph_export marker, and has_graph_export_support(). The wheel has no gremlin module and Cypher is the supported graph language; the test that checks the error a user sees stays and now always runs. The server skip guard has_server_support() and the test that checked it are gone too; test_server_packaging.py keeps stating the packaging requirement and fails without the JARs.

Zero skips in CI: scripts/check_test_skips.py (ASCII only, tested in tests/test_check_test_skips.py) runs in the test job over the JUnit XML and fails on any skip. Its list of accepted skips is empty. A test file a platform cannot run is left out of collection instead of being reported as skipped (collect_ignore in tests/conftest.py: test_sigint.py on Windows, test_docs_examples.py on the upstream pull request branch, which has no docs/), and the one parametrized case Windows cannot create (a directory name with a question mark) is not generated there. A skip that is truly unavoidable (a Windows limitation, a case waiting for an engine fix) is added to the list with its platform, reason, and upstream issue; for an engine bug a strict xfail is preferred. CI already installs every optional package the tests import, so none of them skips there, and a missing one now fails the job.

The faulthandler hook test now runs on every platform, in a child process. Calling faulthandler.enable() or disable() in the pytest process after the JVM has started replaces HotSpot's SIGSEGV handler, and the next intentional trap kills the run with exit 139 and no hs_err file. My first version did that and crashed the full suite twice at the same test.

Docs updated: testing overview (Skips, markers, expected output), CI gates, contributing, best practices, the tests README, and the per-test pages that described the removed skips.

Checked: full suite on the official 26.10.1 wheel, one process: 810 passed, 9 xfailed, 0 skipped (the xfails are the open upstream bugs ArcadeData#9277, ArcadeData#9278, and ArcadeData#9281). Bandit at low/low is clean. The first CI run of the gate on Windows and macOS is this PR's own.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Ubz3m6QXHESerCkehC1qgi

tae898 and others added 3 commits October 6, 2026 14:19
… skip nobody accepted (#207)

About twenty tests skipped when the engine raised or returned nothing; the docs themselves said a wrong empty answer showed up as a skip. None fired on 26.10.1. They are plain assertions now (OpenCypher, geo, graph algorithms, time series, HASH index, vector encodings, importers, the server stack, the JVM payload check). The two GraphML/GraphSON positive tests, their marker, and helper are deleted: the wheel has no gremlin module and Cypher is the supported graph language. The server skip guard and its helper are gone; test_server_packaging.py keeps stating the requirement.

scripts/check_test_skips.py runs in the test job and fails on any skip not on its short list (Windows file name and SIGINT, docs on the upstream PR branch). The faulthandler hook test runs on every platform in a child process: toggling faulthandler in the pytest process after the JVM starts replaces HotSpot's SIGSEGV handler and kills the run with exit 139.

Full suite on the official 26.10.1 wheel: 809 passed, 9 xfailed (open upstream ArcadeData#9277, ArcadeData#9278, ArcadeData#9281), 0 skipped.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ubz3m6QXHESerCkehC1qgi
…d, the gate lists no skip, unavoidable ones are added with a reason (#207)

test_sigint.py is left out of collection on Windows and test_docs_examples.py on the upstream pull request branch (collect_ignore in conftest.py), the Windows-impossible directory name is not generated there, and test_example11 fails instead of skipping when its file is missing. ALLOWED_SKIPS in scripts/check_test_skips.py is empty; a truly unavoidable skip (a Windows limitation, a case that waits for an engine fix) is added with its platform, reason, and upstream issue. CI installs every optional package the tests import, so none skips there. The per-test doc pages no longer describe the removed skips.

Full suite on the official 26.10.1 wheel: 810 passed, 9 xfailed, 0 skipped.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ubz3m6QXHESerCkehC1qgi
…n text into the JUnit file (#207)

The parametrized id carried "could not import 'pyarrow'", which the existing CI import gate greps for in test-results.xml, so a run in which nothing was missing failed it. The cases have explicit ids now.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ubz3m6QXHESerCkehC1qgi
@tae898
tae898 merged commit 346932c into main Oct 6, 2026
27 of 48 checks passed
@tae898
tae898 deleted the test-no-always-skip branch October 6, 2026 07:12
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.

tests: no test skips for a feature the wheel ships, and CI fails on any skip nobody accepted

1 participant