diff options
| -rw-r--r-- | edify/__init__.py | 16 | ||||
| -rw-r--r-- | tests/package.test.py | 11 |
2 files changed, 15 insertions, 12 deletions
diff --git a/edify/__init__.py b/edify/__init__.py index 76ec577..94eb775 100644 --- a/edify/__init__.py +++ b/edify/__init__.py @@ -1,13 +1,19 @@ -from importlib.metadata import PackageNotFoundError, version +import importlib.metadata from edify.builder.builder import RegexBuilder from edify.errors.base import EdifyError from edify.errors.syntax import EdifySyntaxError -try: - __version__ = version("edify") -except PackageNotFoundError: - __version__ = "0.0.0" + +def _resolve_installed_version() -> str: + """Return the installed package version or ``"0.0.0"`` when metadata is missing.""" + try: + return importlib.metadata.version("edify") + except importlib.metadata.PackageNotFoundError: + return "0.0.0" + + +__version__ = _resolve_installed_version() __all__ = [ "EdifyError", diff --git a/tests/package.test.py b/tests/package.test.py index 6e05bda..384f9ce 100644 --- a/tests/package.test.py +++ b/tests/package.test.py @@ -1,16 +1,13 @@ """Tests for the top-level :mod:`edify` package surface.""" -import importlib import importlib.metadata -import sys -from importlib.metadata import PackageNotFoundError + +from edify import _resolve_installed_version def test_version_falls_back_when_package_metadata_missing(monkeypatch): def raise_not_found(distribution_name: str) -> str: - raise PackageNotFoundError(distribution_name) + raise importlib.metadata.PackageNotFoundError(distribution_name) monkeypatch.setattr(importlib.metadata, "version", raise_not_found) - sys.modules.pop("edify", None) - reloaded_module = importlib.import_module("edify") - assert reloaded_module.__version__ == "0.0.0" + assert _resolve_installed_version() == "0.0.0" |
