This is an automated email from the ASF dual-hosted git repository.

eladkal pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 15178b6953 Use stdlib `importlib.metadata` for retrieve `botocore` 
package version (#40137)
15178b6953 is described below

commit 15178b6953001ea7ab9e013cb5e7ede72ec6c36f
Author: Andrey Anshin <[email protected]>
AuthorDate: Sat Jun 8 20:11:03 2024 +0400

    Use stdlib `importlib.metadata` for retrieve `botocore` package version 
(#40137)
    
    * Use stdlib `importlib.metadata` for retrieve `botocore` package version
    
    * Fixup typo
---
 airflow/providers/amazon/aws/utils/__init__.py |  7 +------
 tests/providers/amazon/aws/utils/test_utils.py | 13 +++++++++++++
 tests/providers/amazon/conftest.py             | 10 +++-------
 3 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/airflow/providers/amazon/aws/utils/__init__.py 
b/airflow/providers/amazon/aws/utils/__init__.py
index e04d28869e..74da7001b8 100644
--- a/airflow/providers/amazon/aws/utils/__init__.py
+++ b/airflow/providers/amazon/aws/utils/__init__.py
@@ -18,16 +18,11 @@ from __future__ import annotations
 
 import logging
 import re
-import sys
 from datetime import datetime, timezone
 from enum import Enum
+from importlib import metadata
 from typing import Any
 
-if sys.version_info >= (3, 10):
-    from importlib import metadata
-else:
-    import importlib_metadata as metadata  # type: ignore[no-redef]
-
 from airflow.exceptions import AirflowException
 from airflow.utils.helpers import prune_dict
 from airflow.version import version
diff --git a/tests/providers/amazon/aws/utils/test_utils.py 
b/tests/providers/amazon/aws/utils/test_utils.py
index 7f951d06dd..b9a04a8f54 100644
--- a/tests/providers/amazon/aws/utils/test_utils.py
+++ b/tests/providers/amazon/aws/utils/test_utils.py
@@ -18,12 +18,15 @@ from __future__ import annotations
 
 import datetime
 
+import pytest
+
 from airflow.providers.amazon.aws.utils import (
     _StringCompareEnum,
     datetime_to_epoch,
     datetime_to_epoch_ms,
     datetime_to_epoch_us,
     get_airflow_version,
+    get_botocore_version,
 )
 
 DT = datetime.datetime(2000, 1, 1, tzinfo=datetime.timezone.utc)
@@ -53,3 +56,13 @@ def test_get_airflow_version():
 def test_str_enum():
     assert EnumTest.FOO == "FOO"
     assert EnumTest.FOO.value == "FOO"
+
+
+def test_botocore_version():
+    pytest.importorskip("botocore", reason="`botocore` not installed")
+
+    botocore_version = get_botocore_version()
+    assert len(botocore_version) == 3
+    assert isinstance(botocore_version[0], int), "botocore major version 
expected to be an integer"
+    assert isinstance(botocore_version[1], int), "botocore minor version 
expected to be an integer"
+    assert isinstance(botocore_version[2], int), "botocore patch version 
expected to be an integer"
diff --git a/tests/providers/amazon/conftest.py 
b/tests/providers/amazon/conftest.py
index ca31f1b9ff..0384e05111 100644
--- a/tests/providers/amazon/conftest.py
+++ b/tests/providers/amazon/conftest.py
@@ -19,11 +19,7 @@ from __future__ import annotations
 
 import os
 import warnings
-
-try:
-    import importlib_metadata
-except ImportError:
-    from importlib import metadata as importlib_metadata  # type: 
ignore[no-redef]
+from importlib import metadata
 
 import pytest
 
@@ -31,8 +27,8 @@ import pytest
 @pytest.fixture(scope="session")
 def botocore_version():
     try:
-        version = importlib_metadata.version("botocore")
-    except importlib_metadata.PackageNotFoundError:
+        version = metadata.version("botocore")
+    except ModuleNotFoundError:
         warnings.warn("'botocore' package not found'", UserWarning, 
stacklevel=2)
         return None
 

Reply via email to