diff --git a/source/bind/python/tests/conftest.py b/source/bind/python/tests/conftest.py index 7dcc1a7..3d9dc86 100644 --- a/source/bind/python/tests/conftest.py +++ b/source/bind/python/tests/conftest.py @@ -1,3 +1,4 @@ +import os import sys from pathlib import Path @@ -5,16 +6,26 @@ PROJECT_PYTHON_DIR = Path(__file__).resolve().parents[1] +# In CI, this fixture is exercising a build CI just produced, so an import or +# init failure is a real failure, not an optional/environment-dependent skip. +_IN_CI = bool(os.environ.get("CI") or os.environ.get("GITHUB_ACTIONS")) + + +def _skip_or_fail(message): + if _IN_CI: + pytest.fail(message) + pytest.skip(message) + @pytest.fixture(scope="session") def cea_module(): try: import cea except Exception as exc: - pytest.skip(f"cea import failed: {exc}") + _skip_or_fail(f"cea import failed: {exc}") try: if hasattr(cea, "is_initialized") and not cea.is_initialized(): - pytest.skip("cea database not initialized") + _skip_or_fail("cea database not initialized") except Exception as exc: - pytest.skip(f"cea initialization check failed: {exc}") + _skip_or_fail(f"cea initialization check failed: {exc}") return cea