From 97f0bb66aaaec02fb338290ee68063dc3a9da3a3 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Tue, 14 Mar 2023 10:24:55 -0400 Subject: [PATCH 1/5] tests: report installed versions of common packages Signed-off-by: Henry Schreiner --- pyproject.toml | 1 + tests/conftest.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 1a4e59b2..c8d3cae5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,6 +48,7 @@ docs = [ ] test = [ "filelock >= 3", + 'importlib-metadata; python_version<"3.8"', "pytest >= 6.2.4", "pytest-cov >= 2.12", "pytest-mock >= 2", diff --git a/tests/conftest.py b/tests/conftest.py index d65b64ef..a5520081 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,5 +1,6 @@ # SPDX-License-Identifier: MIT +import contextlib import os import os.path import shutil @@ -12,6 +13,11 @@ import build.env +if sys.version_info < (3, 8): + import importlib_metadata as metadata +else: + from importlib import metadata + def pytest_addoption(parser): os.environ['PYTHONWARNINGS'] = 'ignore:DEPRECATION::pip._internal.cli.base_command' # for when not run within tox @@ -109,3 +115,26 @@ def tmp_dir(): @pytest.fixture(autouse=True) def force_venv(mocker): mocker.patch.object(build.env, '_should_use_virtualenv', lambda: False) + + +def pytest_report_header() -> str: + interesting_packages = [ + 'build', + 'colorama', + 'filelock', + 'packaging', + 'pip', + 'pyproject_hooks', + 'setuptools', + 'tomli', + 'virtualenv', + 'wheel', + ] + valid = [] + for package in interesting_packages: + with contextlib.suppress(ModuleNotFoundError): + valid.append(f'{package}=={metadata.version(package)}') + reqs = ' '.join(valid) + pkg_line = f'installed packages of interest: {reqs}' + + return '\n'.join([pkg_line]) From bf5a4bffd711d004d952b4a8fd8a73b56f35727c Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Tue, 14 Mar 2023 12:30:24 -0400 Subject: [PATCH 2/5] Apply suggestions from code review Co-authored-by: layday --- tests/conftest.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index a5520081..7c98f86d 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -132,9 +132,9 @@ def pytest_report_header() -> str: ] valid = [] for package in interesting_packages: - with contextlib.suppress(ModuleNotFoundError): + with contextlib.suppress(ImportError): valid.append(f'{package}=={metadata.version(package)}') reqs = ' '.join(valid) pkg_line = f'installed packages of interest: {reqs}' - return '\n'.join([pkg_line]) + return pkg_line From 7a94e4f607dc7544b2ff3ed423b04e56ccb1b4f7 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Tue, 14 Mar 2023 12:37:31 -0400 Subject: [PATCH 3/5] Update tests/conftest.py --- tests/conftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/conftest.py b/tests/conftest.py index 7c98f86d..61d2c52d 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -132,7 +132,7 @@ def pytest_report_header() -> str: ] valid = [] for package in interesting_packages: - with contextlib.suppress(ImportError): + with contextlib.suppress(ModuleNotFoundError, FileNotFoundError): valid.append(f'{package}=={metadata.version(package)}') reqs = ' '.join(valid) pkg_line = f'installed packages of interest: {reqs}' From d6c573d18dc0c669f87c1537c209cb5eb73db036 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Tue, 14 Mar 2023 12:39:56 -0400 Subject: [PATCH 4/5] chore: cleanup a bit Signed-off-by: Henry Schreiner --- tests/conftest.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 61d2c52d..a5fe5744 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -132,9 +132,8 @@ def pytest_report_header() -> str: ] valid = [] for package in interesting_packages: + # Old versions of importlib_metadata made this FileNotFoundError with contextlib.suppress(ModuleNotFoundError, FileNotFoundError): valid.append(f'{package}=={metadata.version(package)}') reqs = ' '.join(valid) - pkg_line = f'installed packages of interest: {reqs}' - - return pkg_line + return f'installed packages of interest: {reqs}' From f3bd85085be5081c8c3b97b638bb6ea6bd3997ab Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Tue, 14 Mar 2023 15:19:37 -0400 Subject: [PATCH 5/5] Update pyproject.toml --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index c8d3cae5..1a4e59b2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,7 +48,6 @@ docs = [ ] test = [ "filelock >= 3", - 'importlib-metadata; python_version<"3.8"', "pytest >= 6.2.4", "pytest-cov >= 2.12", "pytest-mock >= 2",