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
2 changes: 1 addition & 1 deletion kernels/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ docs = [
kernels = "kernels.cli:main"

[project.entry-points."egg_info.writers"]
"kernels.lock" = "kernels.lockfile:write_egg_lockfile"
"kernels.lock" = "kernels.locking:write_egg_lockfile"

[tool.maturin]
module-name = "kernels._rust"
Expand Down
19 changes: 19 additions & 0 deletions kernels/tests/test_entry_points.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
from importlib.metadata import distribution

import pytest


def test_egg_info_writer_entry_point_is_importable():
"""The `egg_info.writers` entry point is loaded by setuptools during *any*
`egg_info` run in an environment where `kernels` is installed, including
builds of unrelated packages. If it points at a module that is not shipped,
every such build fails with `ModuleNotFoundError`."""
entry_points = [ep for ep in distribution("kernels").entry_points if ep.group == "egg_info.writers"]
assert entry_points, "no egg_info.writers entry point registered"

for ep in entry_points:
try:
writer = ep.load()
except ModuleNotFoundError as e:
pytest.fail(f"entry point {ep.name} = {ep.value!r} is not importable: {e}")
assert callable(writer)
Loading