Skip to content

Commit 4c42c0e

Browse files
committed
Add unit tests for version handling in doubleml package
1 parent a701ceb commit 4c42c0e

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

doubleml/tests/test_init.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import importlib
2+
import sys
3+
from unittest.mock import patch
4+
5+
import pytest
6+
7+
8+
@pytest.mark.ci
9+
def test_version_from_version_file():
10+
"""Test version is imported from _version.py when available."""
11+
import doubleml
12+
13+
assert hasattr(doubleml, "__version__")
14+
assert isinstance(doubleml.__version__, str)
15+
16+
17+
@pytest.mark.ci
18+
def test_version_fallback_to_metadata():
19+
"""Test fallback to importlib.metadata when _version.py is missing."""
20+
with patch.dict(sys.modules, {"doubleml._version": None}):
21+
with patch("importlib.metadata.version", return_value="1.2.3"):
22+
# Re-import to trigger the fallback
23+
importlib.reload(importlib.import_module("doubleml"))
24+
import doubleml
25+
26+
assert doubleml.__version__ == "1.2.3"
27+
28+
29+
@pytest.mark.ci
30+
def test_version_fallback_to_unknown():
31+
"""Test fallback to 0.0.0+unknown when package not found."""
32+
mock_error = importlib.metadata.PackageNotFoundError()
33+
with patch.dict(sys.modules, {"doubleml._version": None}):
34+
with patch("importlib.metadata.version", side_effect=mock_error):
35+
importlib.reload(importlib.import_module("doubleml"))
36+
import doubleml
37+
38+
assert doubleml.__version__ == "0.0.0+unknown"

0 commit comments

Comments
 (0)