diff --git a/src/mattersim/__version__.py b/src/mattersim/__version__.py index 20a4a15..1a713ab 100644 --- a/src/mattersim/__version__.py +++ b/src/mattersim/__version__.py @@ -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" diff --git a/tests/test_version.py b/tests/test_version.py new file mode 100644 index 0000000..293e010 --- /dev/null +++ b/tests/test_version.py @@ -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__