Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

server = os.environ.get("CI_SERVER_URL", None)


github_sha = (
subprocess.check_output(["git", "rev-parse", "HEAD"]).decode("ASCII").strip()
)
Expand Down
48 changes: 48 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import pytest
import os

from pyln.testing.utils import EXPERIMENTAL_DUAL_FUND, VALGRIND, SLOW_MACHINE

Expand Down Expand Up @@ -39,3 +40,50 @@ def pytest_runtest_setup(item):
pytest.skip('v1-only test, EXPERIMENTAL_DUAL_FUND=1')
if "slow_test" in item.keywords and VALGRIND and SLOW_MACHINE:
pytest.skip("Skipping slow tests under VALGRIND")


@pytest.hookimpl(tryfirst=True)
def pytest_sessionfinish(session, exitstatus):
"""Add environment variables to JUnit XML report.

This hook runs on the master node in pytest-xdist to add properties
directly to the JUnit XML report. This works around the limitation
that record_testsuite_property doesn't work with pytest-xdist.

We use tryfirst=True so we run before the junitxml plugin writes the file.

See: https://github.com/pytest-dev/pytest/issues/7767
"""
# Check if we're on the master node (not a worker)
# Workers have the workeroutput attribute
if hasattr(session.config, "workeroutput"):
return

# Find the LogXML instance among registered plugins
# We need to search through all plugins because it's not directly accessible
xml = None
for plugin in session.config.pluginmanager.get_plugins():
if hasattr(plugin, "add_global_property"):
xml = plugin
break

if xml is None:
return

# List of environment variables to include in the report
include = [
"GITHUB_ACTION_REPOSITORY",
"GITHUB_EVENT_NAME",
"GITHUB_HEAD_REF",
"GITHUB_REF_NAME",
"GITHUB_RUN_ATTEMPT",
"GITHUB_RUN_ID",
"GITHUB_RUN_NUMBER",
"RUNNER_ARCH",
"RUNNER_OS",
]

# Add properties to the XML report
for name in include:
if name in os.environ:
xml.add_global_property(name, os.environ[name])
Loading