You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tests skip themselves when their requirements are missing (a library is
absent, the wrong event loop is selected, the C extensions aren't built).
That is convenient locally but a footgun in CI, where a test may be silently
skipped because a dependency was not installed. The libev unit tests were
effectively not running in any CI configuration.
Add a CASS_DRIVER_NO_SKIP-gated pytest hook in tests/conftest.py that turns
skips into failures (xfail untouched), and enable it in the cibuildwheel
test-commands where the C extensions are mandatory (Linux/macOS). Tests that
genuinely cannot run in the default configuration are listed explicitly via
-k/--ignore (reactor tests run separately per EVENT_LOOP_MANAGER; asyncore,
column_encryption and a few upstream-disabled/flaky tests excluded). Add -v
to every pytest invocation and install the compress-lz4 extra so the lz4
tests actually run.
Pass --import-mode=append in the cibuildwheel pytest commands so the installed
compiled wheel takes precedence on sys.path over the in-tree pure-Python
cassandra source during wheel tests. Keep the global pytest addopts unchanged
so local pytest runs keep their normal import behavior.
Windows and PyPy keep no-skip off: the extensions are optional on Windows and
are never built on PyPy (setup.py forces is_pypy to skip libev/cmurmur3/Cython),
so their extension-dependent skips are legitimate. The PyPy override also drops
the compress-lz4 extra (no prebuilt PyPy lz4 wheel), uses cross-shell quoting,
and deselects the known PyPy/Windows/macOS-incompatible tests.
# test_timer_cancellation) are timing-sensitive and flaky on macOS, matching the
221
+
# CPython macOS exclusions. The override matches PyPy on all OSes, so these are
222
+
# deselected everywhere here (they are still covered by the CPython runs).
223
+
[[tool.cibuildwheel.overrides]]
224
+
select = "pp*"
225
+
test-extras = []
226
+
test-command = [
227
+
"pytest --import-mode=append {package}/tests/unit -v --ignore={package}/tests/unit/column_encryption -k \"not (test_deserialize_date_range_month or test_deserialize_date_range_year or test_datetype or test_multi_timer_validation or test_empty_connections or test_timer_cancellation)\"",
0 commit comments