From a9a5f94fe152215f0db6f7e637cb29a06343bfcb Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Wed, 30 Nov 2022 15:36:52 -0500 Subject: [PATCH] tests: include printout of installed packages of interest Signed-off-by: Henry Schreiner --- requirements-dev.txt | 1 + tests/conftest.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/requirements-dev.txt b/requirements-dev.txt index e210f6ef..ebe1dac3 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -3,6 +3,7 @@ codecov>=2.0.5 coverage>=4.2 cython>=0.25.1 flake8>=3.0.4 +importlib-metadata;python_version<"3.8" path.py>=11.5.0 pytest>=6.0.0 pytest-cov>=2.7.1 diff --git a/tests/conftest.py b/tests/conftest.py index dc8f253c..badb4cd8 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -4,6 +4,12 @@ import pytest +if sys.version_info < (3, 8): + import importlib_metadata as metadata +else: + from importlib import metadata + + DIR = os.path.dirname(os.path.abspath(__file__)) BASE = os.path.dirname(DIR) @@ -43,3 +49,26 @@ def pep518(pep518_wheelhouse, monkeypatch): monkeypatch.setenv("PIP_FIND_LINKS", pep518_wheelhouse) monkeypatch.setenv("PIP_NO_INDEX", "true") return pep518_wheelhouse + + +def pytest_report_header() -> str: + interesting_packages = { + "build", + "distro", + "packaging", + "pip", + "setuptools", + "virtualenv", + "wheel", + } + valid = [] + for package in interesting_packages: + try: + version = metadata.version(package) # type: ignore[no-untyped-call] + except ModuleNotFoundError: + continue + valid.append(f"{package}=={version}") + reqs = " ".join(sorted(valid)) + pkg_line = f"installed packages of interest: {reqs}" + + return "\n".join([pkg_line])