aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--edify/__init__.py16
-rw-r--r--tests/package.test.py11
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"