Skip to content

Commit bd3af3a

Browse files
Fab Michelonibsharifi
Fab Micheloni
authored andcommitted
Take version from loaded package when metadata are missing
1 parent dd8b334 commit bd3af3a

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

redshift_connector/idp_auth_helper.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,13 @@ def get_pkg_version(module_name: str) -> Version:
4747

4848
return Version(pkg_resources.get_distribution(module_name).version)
4949

50-
return Version(version(module_name))
50+
pkg_version = version(module_name)
51+
if pkg_version is not None:
52+
return Version(pkg_version)
53+
54+
import importlib
55+
imported_module = importlib.import_module(module_name)
56+
return Version(imported_module.__version__)
5157

5258
@staticmethod
5359
def set_auth_properties(info: RedshiftProperty):

test/unit/test_idp_auth_helper.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from unittest.mock import MagicMock
2+
3+
from packaging.version import Version
4+
from redshift_connector.idp_auth_helper import IdpAuthHelper
5+
6+
7+
def test_get_pkg_version(mocker) -> None:
8+
mocker.patch("importlib.metadata.version", return_value=None)
9+
10+
module_mock = MagicMock()
11+
module_mock.__version__ = "9.8.7"
12+
mocker.patch("importlib.import_module", return_value=module_mock)
13+
14+
actual_version: Version = IdpAuthHelper.get_pkg_version("test_module")
15+
16+
assert actual_version == Version("9.8.7")

0 commit comments

Comments
 (0)