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
9 changes: 5 additions & 4 deletions src/mattersim/__version__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
import pkg_resources
from importlib.metadata import version, PackageNotFoundError

# Get the version from setup.py
__version__ = pkg_resources.get_distribution("mattersim").version
try:
__version__ = version("mattersim")
except PackageNotFoundError:
__version__ = "unknown"
36 changes: 36 additions & 0 deletions tests/test_version.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
"""
Tests for __version__.py (GitHub issue #140):
Mattersim failed to import with setuptools>=82 due to removed pkg_resources.
"""

import importlib
import sys
from unittest import mock


def _reimport_version_module():
"""Force a fresh import of mattersim.__version__."""
for mod_name in list(sys.modules):
if mod_name.startswith("mattersim"):
del sys.modules[mod_name]
return importlib.import_module("mattersim.__version__")


def test_version_available():
"""mattersim.__version__ is a non-empty string."""
import mattersim

assert isinstance(mattersim.__version__, str)
assert mattersim.__version__


def test_import_succeeds_without_pkg_resources():
"""Import must work when pkg_resources is absent (setuptools>=82, issue #140)."""
for mod_name in list(sys.modules):
if mod_name.startswith("mattersim"):
del sys.modules[mod_name]

with mock.patch.dict(sys.modules, {"pkg_resources": None}):
mod = importlib.import_module("mattersim.__version__")
assert isinstance(mod.__version__, str)
assert mod.__version__
Loading