Skip to content

Commit ad87fba

Browse files
committed
Fix messaegs and test
1 parent f9c58a5 commit ad87fba

File tree

3 files changed

+44
-17
lines changed

3 files changed

+44
-17
lines changed

google/api_core/_python_package_support.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ def warn_deprecation_for_versions_less_than(
110110
dependent_distribution_package,
111111
) = _get_distribution_and_import_packages(dependent_import_package)
112112
message_template = message_template or _flatten_message(
113-
"""DEPRECATION: Package {dependent_packages} depends on
113+
"""
114+
DEPRECATION: Package {dependent_packages} depends on
114115
{dependency_packages}, currently installed at version
115116
{version_used.__str__}. Future updates to
116117
{dependent_packages} will require {dependency_packages} at
@@ -120,12 +121,15 @@ def warn_deprecation_for_versions_less_than(
120121
{dependent_packages} can require the higher version, or
121122
(b) you manually update your Python environment to use at
122123
least version {next_supported_version} of
123-
{dependency_packages}."""
124+
{dependency_packages}.
125+
"""
124126
)
125127
logging.warning(
126128
message_template.format(
127129
dependent_import_package=dependent_import_package,
128130
dependency_import_package=dependency_import_package,
131+
dependency_packages=dependency_packages,
132+
dependent_packages=dependent_packages,
129133
next_supported_version=next_supported_version,
130134
version_used=version_used,
131135
)

google/api_core/_python_version_support.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -185,36 +185,42 @@ def min_python(date: datetime.date) -> str:
185185

186186
if gapic_end < today:
187187
message = _flatten_message(
188-
f"""You are using a non-supported Python version
188+
f"""
189+
You are using a non-supported Python version
189190
({py_version_str}). Google will not post any further
190191
updates to {package_label}. We suggest you upgrade to the
191192
latest Python version, or at least Python
192-
{min_python(today)}, and then update {package_label}. """
193+
{min_python(today)}, and then update {package_label}.
194+
"""
193195
)
194196
logging.warning(message)
195197
return PythonVersionStatus.PYTHON_VERSION_UNSUPPORTED
196198

197199
eol_date = version_info.python_eol + EOL_GRACE_PERIOD
198200
if eol_date <= today <= gapic_end:
199201
message = _flatten_message(
200-
f"""You are using a Python version ({py_version_str})
202+
f"""
203+
You are using a Python version ({py_version_str})
201204
past its end of life. Google will update {package_label}
202205
with critical bug fixes on a best-effort basis, but not
203206
with any other fixes or features. We suggest you upgrade
204207
to the latest Python version, or at least Python
205-
{min_python(today)}, and then update {package_label}."""
208+
{min_python(today)}, and then update {package_label}.
209+
"""
206210
)
207211
logging.warning(message)
208212
return PythonVersionStatus.PYTHON_VERSION_EOL
209213

210214
if gapic_deprecation <= today <= gapic_end:
211215
message = _flatten_message(
212-
f"""You are using a Python version ({py_version_str}),
216+
f"""
217+
You are using a Python version ({py_version_str}),
213218
which Google will stop supporting in {package_label} when
214219
it reaches its end of life ({version_info.python_eol}). We
215220
suggest you upgrade to the latest Python version, or at
216221
least Python {min_python(version_info.python_eol)}, and
217-
then update {package_label}."""
222+
then update {package_label}.
223+
"""
218224
)
219225
logging.warning(message)
220226
return PythonVersionStatus.PYTHON_VERSION_DEPRECATED

tests/unit/test_python_package_support.py

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,46 +54,63 @@ def test_get_dependency_version_py37(mock_get_distribution):
5454
assert get_dependency_version("not-a-package") is None
5555

5656

57+
@patch("google.api_core._python_package_support._get_distribution_and_import_packages")
5758
@patch("google.api_core._python_package_support.get_dependency_version")
5859
@patch("google.api_core._python_package_support.logging.warning")
59-
def test_warn_deprecation_for_versions_less_than(mock_log_warning, mock_get_version):
60+
def test_warn_deprecation_for_versions_less_than(
61+
mock_log_warning, mock_get_version, mock_get_packages
62+
):
6063
"""Test the deprecation warning logic."""
64+
# Mock the helper function to return predictable package strings
65+
mock_get_packages.side_effect = [
66+
("dep-package (dep.package)", "dep-package"),
67+
("my-package (my.package)", "my-package"),
68+
]
69+
6170
# Case 1: Installed version is less than required, should warn.
6271
mock_get_version.return_value = parse_version("1.0.0")
63-
warn_deprecation_for_versions_less_than("my-package", "dep-package", "2.0.0")
72+
warn_deprecation_for_versions_less_than("my.package", "dep.package", "2.0.0")
6473
mock_log_warning.assert_called_once()
6574
assert (
66-
"DEPRECATION: Package my-package depends on dep-package"
75+
"DEPRECATION: Package my-package (my.package) depends on dep-package (dep.package)"
6776
in mock_log_warning.call_args[0][0]
6877
)
6978

7079
# Case 2: Installed version is equal to required, should not warn.
7180
mock_log_warning.reset_mock()
81+
mock_get_packages.reset_mock()
7282
mock_get_version.return_value = parse_version("2.0.0")
73-
warn_deprecation_for_versions_less_than("my-package", "dep-package", "2.0.0")
83+
warn_deprecation_for_versions_less_than("my.package", "dep.package", "2.0.0")
7484
mock_log_warning.assert_not_called()
7585

7686
# Case 3: Installed version is greater than required, should not warn.
7787
mock_log_warning.reset_mock()
88+
mock_get_packages.reset_mock()
7889
mock_get_version.return_value = parse_version("3.0.0")
79-
warn_deprecation_for_versions_less_than("my-package", "dep-package", "2.0.0")
90+
warn_deprecation_for_versions_less_than("my.package", "dep.package", "2.0.0")
8091
mock_log_warning.assert_not_called()
8192

8293
# Case 4: Dependency not found, should not warn.
8394
mock_log_warning.reset_mock()
95+
mock_get_packages.reset_mock()
8496
mock_get_version.return_value = None
85-
warn_deprecation_for_versions_less_than("my-package", "dep-package", "2.0.0")
97+
warn_deprecation_for_versions_less_than("my.package", "dep.package", "2.0.0")
8698
mock_log_warning.assert_not_called()
8799

88100
# Case 5: Custom message template.
89101
mock_log_warning.reset_mock()
102+
mock_get_packages.reset_mock()
103+
mock_get_packages.side_effect = [
104+
("dep-package (dep.package)", "dep-package"),
105+
("my-package (my.package)", "my-package"),
106+
]
90107
mock_get_version.return_value = parse_version("1.0.0")
91-
template = "Custom warning for {dependency_name} used by {dependent_package}."
108+
template = "Custom warning for {dependency_packages} used by {dependent_packages}."
92109
warn_deprecation_for_versions_less_than(
93-
"my-package", "dep-package", "2.0.0", message_template=template
110+
"my.package", "dep.package", "2.0.0", message_template=template
94111
)
95112
mock_log_warning.assert_called_once()
96113
assert (
97-
"Custom warning for dep-package used by my-package."
114+
"Custom warning for dep-package (dep.package) used by my-package (my.package)."
98115
in mock_log_warning.call_args[0][0]
99116
)

0 commit comments

Comments
 (0)