From f6efae2fc63daf3f53f353e340bf1168b9f3e2c5 Mon Sep 17 00:00:00 2001 From: Sunny Wu Date: Fri, 10 Oct 2025 16:31:13 +1100 Subject: [PATCH 1/2] removed pkg_resources dependency and added unit tests for the fix --- tests/test_request_response_util.py | 30 +++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 tests/test_request_response_util.py diff --git a/tests/test_request_response_util.py b/tests/test_request_response_util.py new file mode 100644 index 0000000..2b7f766 --- /dev/null +++ b/tests/test_request_response_util.py @@ -0,0 +1,30 @@ +import unittest +from unittest.mock import patch +from importlib.metadata import version, PackageNotFoundError + +from uid2_client.request_response_util import auth_headers + + +class TestRequestResponseUtil(unittest.TestCase): + + def test_auth_headers_packaged_mode(self): + """Test that the version is correctly retrieved in packaged mode.""" + try: + # In a test environment, the package might not be fully installed. + # We get the version directly if available. + expected_version = version("uid2_client") + except PackageNotFoundError: + # If not found, we can't run this specific check, so we skip it. + self.skipTest("uid2_client package not found, skipping packaged mode test.") + + headers = auth_headers("test_auth_key") + self.assertEqual(headers['Authorization'], 'Bearer test_auth_key') + self.assertEqual(headers['X-UID2-Client-Version'], f"uid2-client-python-{expected_version}") + + @patch('uid2_client.request_response_util.metadata.version') + def test_auth_headers_non_packaged_mode(self, mock_version): + """Test that the version is set to non-packaged-mode when the package is not found.""" + mock_version.side_effect = PackageNotFoundError + headers = auth_headers("test_auth_key") + self.assertEqual(headers['Authorization'], 'Bearer test_auth_key') + self.assertEqual(headers['X-UID2-Client-Version'], "uid2-client-python-non-packaged-mode") From 6619b062cfe09ba42546fea73a4141120049024d Mon Sep 17 00:00:00 2001 From: Sunny Wu Date: Fri, 10 Oct 2025 16:32:15 +1100 Subject: [PATCH 2/2] removed pkg_resources dependency and added unit tests for the fix --- uid2_client/request_response_util.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/uid2_client/request_response_util.py b/uid2_client/request_response_util.py index 94fe2d3..a7e01f7 100644 --- a/uid2_client/request_response_util.py +++ b/uid2_client/request_response_util.py @@ -3,8 +3,7 @@ from datetime import datetime from typing import Dict, Optional from urllib import request - -import pkg_resources +from importlib import metadata from uid2_client.encryption import _encrypt_gcm, _decrypt_gcm from .envelope import Envelope @@ -12,12 +11,14 @@ BINARY = 'application/octet-stream' + def _make_url(base_url: str, path: str) -> str: return base_url + path + def auth_headers(auth_key: str) -> Dict[str, str]: try: - version = pkg_resources.get_distribution("uid2_client").version + version = metadata.version("uid2_client") except Exception: version = "non-packaged-mode"