diff mbox series

[wic,v4,2/6] tests: add conftest with a wic-import preflight and session banner

Message ID 20260706222904.664863-3-twoerner@gmail.com
State New
Headers show
Series tests: standalone test-suite framework plus the first unit test | expand

Commit Message

Trevor Woerner July 6, 2026, 10:29 p.m. UTC
tests/conftest.py prepares the suite and describes the run. It adds the
in-tree src/ to sys.path so the tests import the wic in the checkout
without an install, then imports wic once up front: if that fails, the
session stops immediately with pytest.exit() and the reason, rather than
letting every test error out one by one against a missing or wrong wic.

A pytest_report_header hook prints a short banner naming the host, the
Python and pytest versions, and the wic under test with its version and
imported path, so a run can be attributed when more than one checkout or
virtualenv is in play.

AI-Generated: codex/claude-opus 4.8 (xhigh)
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
changes in v4:
- move the wic-import check here from the run-tests.sh wrapper, so
  it runs on every invocation regardless of how pytest is launched;
  on failure the session stops with pytest.exit().
changes in v3:
- no change in this revision.
changes in v2:
- v1 submitted the entire test suite as a single commit; v2 breaks
  the work into a reviewable series, and this patch is one step of it.
---
 tests/conftest.py | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 tests/conftest.py
diff mbox series

Patch

diff --git a/tests/conftest.py b/tests/conftest.py
new file mode 100644
index 000000000000..13b8953cec40
--- /dev/null
+++ b/tests/conftest.py
@@ -0,0 +1,28 @@ 
+# Session setup and banner for the wic test suite.
+
+import platform
+import sys
+from pathlib import Path
+
+import pytest
+
+_SRC = Path(__file__).resolve().parent.parent / "src"
+if str(_SRC) not in sys.path:
+    sys.path.insert(0, str(_SRC))
+
+try:
+    import wic.cli as _wic_cli
+except Exception as exc:
+    pytest.exit("cannot import wic from %s: %s" % (_SRC, exc), returncode=1)
+
+
+def pytest_report_header(config):
+    return "\n".join([
+        "wic test suite",
+        "  host:   %s  %s %s" % (
+            platform.node(), platform.system(), platform.machine()),
+        "  python: %s   pytest: %s" % (
+            platform.python_version(), pytest.__version__),
+        "  wic:    %s  (%s)" % (
+            getattr(_wic_cli, "__version__", "(unknown)"), _wic_cli.__file__),
+    ])