@@ -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