Skip to content
This repository was archived by the owner on Mar 26, 2026. It is now read-only.

Commit 201f06b

Browse files
committed
fix(snippetgen): remove special handling for resource paths
There are some bugs in this implementation that stop generation in some APIs and result in incorrect snippets getting generated for others. Back out this feature for now so it can be re-added later.
1 parent 9e46031 commit 201f06b

96 files changed

Lines changed: 627 additions & 1376 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

gapic/samplegen/samplegen.py

Lines changed: 1 addition & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -928,36 +928,6 @@ def parse_handwritten_specs(sample_configs: Sequence[str]) -> Generator[Dict[str
928928
yield spec
929929

930930

931-
def _generate_resource_path_request_object(field_name: str, message: wrappers.MessageType) -> List[Dict[str, str]]:
932-
"""Given a message that represents a resource, generate request objects that
933-
populate the resource path args.
934-
935-
Args:
936-
field_name (str): The name of the field.
937-
message (wrappers.MessageType): The message the field belongs to.
938-
939-
Returns:
940-
List[Dict[str, str]]: A list of dicts that can be turned into TransformedRequests.
941-
"""
942-
request = []
943-
944-
# Look for specific field names to substitute more realistic values
945-
special_values_dict = {
946-
"project": '"my-project-id"',
947-
"location": '"us-central1"'
948-
}
949-
950-
for resource_path_arg in message.resource_path_args:
951-
value = special_values_dict.get(
952-
resource_path_arg, f'"{resource_path_arg}_value"')
953-
request.append({
954-
# See TransformedRequest.build() for how 'field' is parsed
955-
"field": f"{field_name}%{resource_path_arg}",
956-
"value": value,
957-
})
958-
959-
return request
960-
961931

962932
def generate_request_object(api_schema: api.API, service: wrappers.Service, message: wrappers.MessageType, field_name_prefix: str = ""):
963933
"""Generate dummy input for a given message.
@@ -993,17 +963,7 @@ def generate_request_object(api_schema: api.API, service: wrappers.Service, mess
993963

994964
# TODO(busunkim): Properly handle map fields
995965
if field.is_primitive:
996-
resource_reference_message = service.resource_messages_dict.get(
997-
field.resource_reference)
998-
# Some resource patterns have no resource_path_args
999-
# https://github.com/googleapis/gapic-generator-python/issues/701
1000-
if resource_reference_message and resource_reference_message.resource_path_args:
1001-
request += _generate_resource_path_request_object(
1002-
field_name,
1003-
resource_reference_message
1004-
)
1005-
else:
1006-
request.append(
966+
request.append(
1007967
{"field": field_name, "value": field.mock_value_original_type})
1008968
elif field.enum:
1009969
# Choose the last enum value in the list since index 0 is often "unspecified"

tests/integration/goldens/asset/google/cloud/asset_v1/services/asset_service/async_client.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -619,12 +619,8 @@ def sample_get_feed():
619619
client = asset_v1.AssetServiceClient()
620620
621621
# Initialize request argument(s)
622-
project = "my-project-id"
623-
feed = "feed_value"
624-
name = f"projects/{project}/feeds/{feed}"
625-
626622
request = asset_v1.GetFeedRequest(
627-
name=name,
623+
name="name_value",
628624
)
629625
630626
# Make the request
@@ -938,12 +934,8 @@ def sample_delete_feed():
938934
client = asset_v1.AssetServiceClient()
939935
940936
# Initialize request argument(s)
941-
project = "my-project-id"
942-
feed = "feed_value"
943-
name = f"projects/{project}/feeds/{feed}"
944-
945937
request = asset_v1.DeleteFeedRequest(
946-
name=name,
938+
name="name_value",
947939
)
948940
949941
# Make the request

tests/integration/goldens/asset/google/cloud/asset_v1/services/asset_service/client.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -806,12 +806,8 @@ def sample_get_feed():
806806
client = asset_v1.AssetServiceClient()
807807
808808
# Initialize request argument(s)
809-
project = "my-project-id"
810-
feed = "feed_value"
811-
name = f"projects/{project}/feeds/{feed}"
812-
813809
request = asset_v1.GetFeedRequest(
814-
name=name,
810+
name="name_value",
815811
)
816812
817813
# Make the request
@@ -1114,12 +1110,8 @@ def sample_delete_feed():
11141110
client = asset_v1.AssetServiceClient()
11151111
11161112
# Initialize request argument(s)
1117-
project = "my-project-id"
1118-
feed = "feed_value"
1119-
name = f"projects/{project}/feeds/{feed}"
1120-
11211113
request = asset_v1.DeleteFeedRequest(
1122-
name=name,
1114+
name="name_value",
11231115
)
11241116
11251117
# Make the request

tests/integration/goldens/asset/samples/generated_samples/cloudasset_generated_asset_v1_asset_service_delete_feed_async.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,8 @@ async def sample_delete_feed():
3232
client = asset_v1.AssetServiceAsyncClient()
3333

3434
# Initialize request argument(s)
35-
project = "my-project-id"
36-
feed = "feed_value"
37-
name = f"projects/{project}/feeds/{feed}"
38-
3935
request = asset_v1.DeleteFeedRequest(
40-
name=name,
36+
name="name_value",
4137
)
4238

4339
# Make the request

tests/integration/goldens/asset/samples/generated_samples/cloudasset_generated_asset_v1_asset_service_delete_feed_sync.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,8 @@ def sample_delete_feed():
3232
client = asset_v1.AssetServiceClient()
3333

3434
# Initialize request argument(s)
35-
project = "my-project-id"
36-
feed = "feed_value"
37-
name = f"projects/{project}/feeds/{feed}"
38-
3935
request = asset_v1.DeleteFeedRequest(
40-
name=name,
36+
name="name_value",
4137
)
4238

4339
# Make the request

tests/integration/goldens/asset/samples/generated_samples/cloudasset_generated_asset_v1_asset_service_get_feed_async.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,8 @@ async def sample_get_feed():
3232
client = asset_v1.AssetServiceAsyncClient()
3333

3434
# Initialize request argument(s)
35-
project = "my-project-id"
36-
feed = "feed_value"
37-
name = f"projects/{project}/feeds/{feed}"
38-
3935
request = asset_v1.GetFeedRequest(
40-
name=name,
36+
name="name_value",
4137
)
4238

4339
# Make the request

tests/integration/goldens/asset/samples/generated_samples/cloudasset_generated_asset_v1_asset_service_get_feed_sync.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,8 @@ def sample_get_feed():
3232
client = asset_v1.AssetServiceClient()
3333

3434
# Initialize request argument(s)
35-
project = "my-project-id"
36-
feed = "feed_value"
37-
name = f"projects/{project}/feeds/{feed}"
38-
3935
request = asset_v1.GetFeedRequest(
40-
name=name,
36+
name="name_value",
4137
)
4238

4339
# Make the request

tests/integration/goldens/asset/samples/generated_samples/snippet_metadata_asset_v1.json

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -366,12 +366,12 @@
366366
"regionTag": "cloudasset_generated_asset_v1_AssetService_DeleteFeed_async",
367367
"segments": [
368368
{
369-
"end": 46,
369+
"end": 42,
370370
"start": 27,
371371
"type": "FULL"
372372
},
373373
{
374-
"end": 46,
374+
"end": 42,
375375
"start": 27,
376376
"type": "SHORT"
377377
},
@@ -381,16 +381,16 @@
381381
"type": "CLIENT_INITIALIZATION"
382382
},
383383
{
384-
"end": 42,
384+
"end": 38,
385385
"start": 34,
386386
"type": "REQUEST_INITIALIZATION"
387387
},
388388
{
389-
"start": 43,
389+
"start": 39,
390390
"type": "REQUEST_EXECUTION"
391391
},
392392
{
393-
"end": 47,
393+
"end": 43,
394394
"type": "RESPONSE_HANDLING"
395395
}
396396
]
@@ -408,12 +408,12 @@
408408
"regionTag": "cloudasset_generated_asset_v1_AssetService_DeleteFeed_sync",
409409
"segments": [
410410
{
411-
"end": 46,
411+
"end": 42,
412412
"start": 27,
413413
"type": "FULL"
414414
},
415415
{
416-
"end": 46,
416+
"end": 42,
417417
"start": 27,
418418
"type": "SHORT"
419419
},
@@ -423,16 +423,16 @@
423423
"type": "CLIENT_INITIALIZATION"
424424
},
425425
{
426-
"end": 42,
426+
"end": 38,
427427
"start": 34,
428428
"type": "REQUEST_INITIALIZATION"
429429
},
430430
{
431-
"start": 43,
431+
"start": 39,
432432
"type": "REQUEST_EXECUTION"
433433
},
434434
{
435-
"end": 47,
435+
"end": 43,
436436
"type": "RESPONSE_HANDLING"
437437
}
438438
]
@@ -536,12 +536,12 @@
536536
"regionTag": "cloudasset_generated_asset_v1_AssetService_GetFeed_async",
537537
"segments": [
538538
{
539-
"end": 48,
539+
"end": 44,
540540
"start": 27,
541541
"type": "FULL"
542542
},
543543
{
544-
"end": 48,
544+
"end": 44,
545545
"start": 27,
546546
"type": "SHORT"
547547
},
@@ -551,18 +551,18 @@
551551
"type": "CLIENT_INITIALIZATION"
552552
},
553553
{
554-
"end": 42,
554+
"end": 38,
555555
"start": 34,
556556
"type": "REQUEST_INITIALIZATION"
557557
},
558558
{
559-
"end": 45,
560-
"start": 43,
559+
"end": 41,
560+
"start": 39,
561561
"type": "REQUEST_EXECUTION"
562562
},
563563
{
564-
"end": 49,
565-
"start": 46,
564+
"end": 45,
565+
"start": 42,
566566
"type": "RESPONSE_HANDLING"
567567
}
568568
]
@@ -580,12 +580,12 @@
580580
"regionTag": "cloudasset_generated_asset_v1_AssetService_GetFeed_sync",
581581
"segments": [
582582
{
583-
"end": 48,
583+
"end": 44,
584584
"start": 27,
585585
"type": "FULL"
586586
},
587587
{
588-
"end": 48,
588+
"end": 44,
589589
"start": 27,
590590
"type": "SHORT"
591591
},
@@ -595,18 +595,18 @@
595595
"type": "CLIENT_INITIALIZATION"
596596
},
597597
{
598-
"end": 42,
598+
"end": 38,
599599
"start": 34,
600600
"type": "REQUEST_INITIALIZATION"
601601
},
602602
{
603-
"end": 45,
604-
"start": 43,
603+
"end": 41,
604+
"start": 39,
605605
"type": "REQUEST_EXECUTION"
606606
},
607607
{
608-
"end": 49,
609-
"start": 46,
608+
"end": 45,
609+
"start": 42,
610610
"type": "RESPONSE_HANDLING"
611611
}
612612
]

tests/integration/goldens/credentials/google/iam/credentials_v1/services/iam_credentials/async_client.py

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -218,12 +218,8 @@ def sample_generate_access_token():
218218
client = credentials_v1.IAMCredentialsClient()
219219
220220
# Initialize request argument(s)
221-
project = "my-project-id"
222-
service_account = "service_account_value"
223-
name = f"projects/{project}/serviceAccounts/{service_account}"
224-
225221
request = credentials_v1.GenerateAccessTokenRequest(
226-
name=name,
222+
name="name_value",
227223
scope=['scope_value_1', 'scope_value_2'],
228224
)
229225
@@ -376,12 +372,8 @@ def sample_generate_id_token():
376372
client = credentials_v1.IAMCredentialsClient()
377373
378374
# Initialize request argument(s)
379-
project = "my-project-id"
380-
service_account = "service_account_value"
381-
name = f"projects/{project}/serviceAccounts/{service_account}"
382-
383375
request = credentials_v1.GenerateIdTokenRequest(
384-
name=name,
376+
name="name_value",
385377
audience="audience_value",
386378
)
387379
@@ -527,12 +519,8 @@ def sample_sign_blob():
527519
client = credentials_v1.IAMCredentialsClient()
528520
529521
# Initialize request argument(s)
530-
project = "my-project-id"
531-
service_account = "service_account_value"
532-
name = f"projects/{project}/serviceAccounts/{service_account}"
533-
534522
request = credentials_v1.SignBlobRequest(
535-
name=name,
523+
name="name_value",
536524
payload=b'payload_blob',
537525
)
538526
@@ -665,12 +653,8 @@ def sample_sign_jwt():
665653
client = credentials_v1.IAMCredentialsClient()
666654
667655
# Initialize request argument(s)
668-
project = "my-project-id"
669-
service_account = "service_account_value"
670-
name = f"projects/{project}/serviceAccounts/{service_account}"
671-
672656
request = credentials_v1.SignJwtRequest(
673-
name=name,
657+
name="name_value",
674658
payload="payload_value",
675659
)
676660

0 commit comments

Comments
 (0)