diff --git a/src/google/adk/cli/utils/evals.py b/src/google/adk/cli/utils/evals.py index 56c2035165..8c6a8ac280 100644 --- a/src/google/adk/cli/utils/evals.py +++ b/src/google/adk/cli/utils/evals.py @@ -82,7 +82,7 @@ def create_gcs_eval_managers_from_uri( ' google-adk[gcp]\nOr: pip install google-cloud-storage>=2.18' ) from e - gcs_bucket = eval_storage_uri.split('://')[1] + gcs_bucket = eval_storage_uri.split('://')[1].split('/')[0] eval_sets_manager = GcsEvalSetsManager( bucket_name=gcs_bucket, project=os.environ['GOOGLE_CLOUD_PROJECT'] ) diff --git a/tests/unittests/cli/utils/test_evals.py b/tests/unittests/cli/utils/test_evals.py index bfb1481700..5bbd538cb8 100644 --- a/tests/unittests/cli/utils/test_evals.py +++ b/tests/unittests/cli/utils/test_evals.py @@ -61,6 +61,35 @@ def test_create_gcs_eval_managers_from_uri_success( ) +@mock.patch.dict(os.environ, {'GOOGLE_CLOUD_PROJECT': 'test-project'}) +@mock.patch( + 'google.adk.evaluation.gcs_eval_set_results_manager.GcsEvalSetResultsManager', + autospec=True, +) +@mock.patch( + 'google.adk.evaluation.gcs_eval_sets_manager.GcsEvalSetsManager', + autospec=True, +) +def test_create_gcs_eval_managers_from_uri_extracts_bucket_from_path( + mock_gcs_eval_sets_manager, mock_gcs_eval_set_results_manager +): + mock_gcs_eval_sets_manager.return_value = mock.MagicMock( + spec=GcsEvalSetsManager + ) + mock_gcs_eval_set_results_manager.return_value = mock.MagicMock( + spec=GcsEvalSetResultsManager + ) + + evals.create_gcs_eval_managers_from_uri('gs://test-bucket/some/path') + + mock_gcs_eval_sets_manager.assert_called_once_with( + bucket_name='test-bucket', project='test-project' + ) + mock_gcs_eval_set_results_manager.assert_called_once_with( + bucket_name='test-bucket', project='test-project' + ) + + def test_create_gcs_eval_managers_from_uri_failure(): with pytest.raises(ValueError): evals.create_gcs_eval_managers_from_uri('unsupported-uri')