diff --git a/src/pyproject_hooks/_in_process/_in_process.py b/src/pyproject_hooks/_in_process/_in_process.py index d689bab..a247ca4 100644 --- a/src/pyproject_hooks/_in_process/_in_process.py +++ b/src/pyproject_hooks/_in_process/_in_process.py @@ -112,7 +112,8 @@ def find_distributions(self, context=None): # Delayed import: Python 3.7 does not contain importlib.metadata from importlib.metadata import DistributionFinder, MetadataPathFinder - context = DistributionFinder.Context(path=self.backend_path) + name = context.name if context else None + context = DistributionFinder.Context(name=name, path=self.backend_path) return MetadataPathFinder.find_distributions(context=context) diff --git a/tests/samples/distribution_mismatch/backend/_pkg-0.0.1.dist-info/METADATA b/tests/samples/distribution_mismatch/backend/_pkg-0.0.1.dist-info/METADATA new file mode 100644 index 0000000..31e56a9 --- /dev/null +++ b/tests/samples/distribution_mismatch/backend/_pkg-0.0.1.dist-info/METADATA @@ -0,0 +1,2 @@ +Name: _pkg +Version: 0.0.1 diff --git a/tests/samples/distribution_mismatch/backend/intree_backend.py b/tests/samples/distribution_mismatch/backend/intree_backend.py new file mode 100644 index 0000000..d54d986 --- /dev/null +++ b/tests/samples/distribution_mismatch/backend/intree_backend.py @@ -0,0 +1,6 @@ +from importlib.metadata import distribution + + +def get_requires_for_build_sdist(config_settings): + dist = distribution("setuptools") # not present in backend-path + return [dist.version] diff --git a/tests/samples/distribution_mismatch/pyproject.toml b/tests/samples/distribution_mismatch/pyproject.toml new file mode 100644 index 0000000..fd4e8cb --- /dev/null +++ b/tests/samples/distribution_mismatch/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +build-backend = 'intree_backend' +backend-path = ['backend'] diff --git a/tests/samples/pkg_intree_metadata/backend/_test_boostrap-0.0.1.dist-info/METADATA b/tests/samples/pkg_intree_metadata/backend/_test_bootstrap-0.0.1.dist-info/METADATA similarity index 100% rename from tests/samples/pkg_intree_metadata/backend/_test_boostrap-0.0.1.dist-info/METADATA rename to tests/samples/pkg_intree_metadata/backend/_test_bootstrap-0.0.1.dist-info/METADATA diff --git a/tests/samples/pkg_intree_metadata/backend/_test_boostrap-0.0.1.dist-info/entry_points.txt b/tests/samples/pkg_intree_metadata/backend/_test_bootstrap-0.0.1.dist-info/entry_points.txt similarity index 100% rename from tests/samples/pkg_intree_metadata/backend/_test_boostrap-0.0.1.dist-info/entry_points.txt rename to tests/samples/pkg_intree_metadata/backend/_test_bootstrap-0.0.1.dist-info/entry_points.txt diff --git a/tests/test_inplace_hooks.py b/tests/test_inplace_hooks.py index 1df12d6..39b80a3 100644 --- a/tests/test_inplace_hooks.py +++ b/tests/test_inplace_hooks.py @@ -100,6 +100,13 @@ def test_intree_backend_importlib_metadata_interoperation(): ] +def test_distribution_mismatch(): + pytest.importorskip("importlib.metadata") + + hooks = get_hooks("distribution_mismatch") + assert hooks.get_requires_for_build_sdist({}) != ["0.0.1"] + + def install_finder_with_sitecustomize(directory, mapping): finder = f""" import sys