Skip to content

Commit 0914078

Browse files
committed
populate release level
1 parent babbe74 commit 0914078

File tree

2 files changed

+54
-9
lines changed

2 files changed

+54
-9
lines changed

.generator/cli.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -188,9 +188,7 @@ def _get_new_library_config(request_data: Dict) -> Dict:
188188
return {}
189189

190190

191-
def _add_new_library_version(
192-
library_config: Dict
193-
) -> None:
191+
def _add_new_library_version(library_config: Dict) -> None:
194192
"""Adds the library version to the configuration if it's not present.
195193
196194
Args:
@@ -383,6 +381,19 @@ def _clean_up_files_after_post_processing(output: str, library_id: str):
383381
os.remove(gapic_version_file)
384382

385383

384+
def _determine_release_level_from_api_path(api_path: str) -> str:
385+
"""Determines the release level from the API path.
386+
387+
Args:
388+
api_path (str): The path to the API.
389+
390+
Returns:
391+
str: The release level, which can be 'alpha', 'beta', or 'stable'.
392+
"""
393+
version = Path(api_path).name
394+
return next((level for level in ["beta", "alpha"] if level in version), "stable")
395+
396+
386397
def _create_repo_metadata_from_service_config(
387398
service_config_name: str, api_path: str, source: str, library_id: str
388399
) -> Dict:
@@ -408,11 +419,10 @@ def _create_repo_metadata_from_service_config(
408419
api_shortname = service_config.get("name", "").split(".")[0]
409420
documentation = service_config.get("documentation", {})
410421
api_description = documentation.get("summary", "")
411-
issue_tracker = service_config.get("new_issue_uri", "https://github.com/googleapis/google-cloud-python/issues")
412-
413-
# TODO(ohmayr): Determine release level from api_path
414-
release_level = "stable"
415-
422+
issue_tracker = service_config.get(
423+
"new_issue_uri", "https://github.com/googleapis/google-cloud-python/issues"
424+
)
425+
release_level = _determine_release_level_from_api_path(api_path)
416426

417427
return {
418428
"api_shortname": api_shortname,

.generator/test_cli.py

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
_create_repo_metadata_from_service_config,
4141
_determine_generator_command,
4242
_determine_library_namespace,
43+
_determine_release_level_from_api_path,
4344
_generate_api,
4445
_generate_repo_metadata_file,
4546
_get_api_generator_options,
@@ -581,6 +582,7 @@ def test_handle_generate_success(
581582
mock_clean_up_files_after_post_processing = mocker.patch(
582583
"cli._clean_up_files_after_post_processing"
583584
)
585+
mocker.patch("cli._generate_repo_metadata_file")
584586

585587
handle_generate()
586588

@@ -1108,13 +1110,46 @@ def test_determine_library_namespace_success(
11081110
assert namespace == expected_namespace
11091111

11101112

1111-
def test_create_repo_metadata_from_service_config():
1113+
def test_determine_release_level_alpha():
1114+
"""Tests that the release level is alpha."""
1115+
api_path = "google/cloud/language/v1alpha1"
1116+
release_level = _determine_release_level_from_api_path(api_path)
1117+
assert release_level == "alpha"
1118+
1119+
1120+
def test_determine_release_level_beta():
1121+
"""Tests that the release level is beta."""
1122+
api_path = "google/cloud/language/v1beta1"
1123+
release_level = _determine_release_level_from_api_path(api_path)
1124+
assert release_level == "beta"
1125+
1126+
1127+
def test_determine_release_level_stable():
1128+
"""Tests that the release level is stable."""
1129+
api_path = "google/cloud/language/v1"
1130+
release_level = _determine_release_level_from_api_path(api_path)
1131+
assert release_level == "stable"
1132+
1133+
1134+
def test_create_repo_metadata_from_service_config(mocker):
11121135
"""Tests the creation of .repo-metadata.json content."""
11131136
service_config_name = "service_config.yaml"
11141137
api_path = "google/cloud/language/v1"
11151138
source = "/source"
11161139
library_id = "google-cloud-language"
11171140

1141+
mock_yaml_content = {
1142+
"name": "google.cloud.language.v1",
1143+
"title": "Cloud Natural Language API",
1144+
"publishing": {
1145+
"documentation_uri": "https://cloud.google.com/natural-language/docs"
1146+
},
1147+
"documentation": {"summary": "A comprehensive summary."},
1148+
"new_issue_uri": "https://example.com/issues",
1149+
}
1150+
mocker.patch("builtins.open", mocker.mock_open(read_data=""))
1151+
mocker.patch("yaml.safe_load", return_value=mock_yaml_content)
1152+
11181153
metadata = _create_repo_metadata_from_service_config(
11191154
service_config_name, api_path, source, library_id
11201155
)

0 commit comments

Comments
 (0)