Skip to content

Commit 9f1e4e2

Browse files
authored
tests: fix unit test failure when auto_populated_fields is set (#16944)
Fixes b/508597813
1 parent 7338355 commit 9f1e4e2

11 files changed

Lines changed: 250 additions & 91 deletions

File tree

packages/gapic-generator/gapic/templates/tests/unit/gapic/%name_%version/%sub/test_%service.py.j2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1114,10 +1114,10 @@ def test_{{ service.client_name|snake_case }}_create_channel_credentials_file(cl
11141114

11151115
{% for method in service.methods.values() if 'rest' in opts.transport %}
11161116
{% if method.extended_lro %}
1117-
{{ test_macros.rest_required_tests(method, service, numeric_enums=opts.rest_numeric_enums, full_extended_lro=True) }}
1117+
{{ test_macros.rest_required_tests(api, method, service, numeric_enums=opts.rest_numeric_enums, full_extended_lro=True) }}
11181118

11191119
{% endif %}
1120-
{{ test_macros.rest_required_tests(method, service, numeric_enums=opts.rest_numeric_enums) }}
1120+
{{ test_macros.rest_required_tests(api, method, service, numeric_enums=opts.rest_numeric_enums) }}
11211121

11221122
{% endfor -%} {#- method in methods for rest #}
11231123

packages/gapic-generator/gapic/templates/tests/unit/gapic/%name_%version/%sub/test_macros.j2

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1018,7 +1018,7 @@ def test_{{ method_name }}_raw_page_lro():
10181018
{% endif %}{# method.paged_result_field #}{% endwith %}
10191019
{% endmacro %}
10201020

1021-
{% macro rest_required_tests(method, service, numeric_enums=False, full_extended_lro=False) %}
1021+
{% macro rest_required_tests(api, method, service, numeric_enums=False, full_extended_lro=False) %}
10221022
{% with method_name = method.client_method_name|snake_case + "_unary" if method.extended_lro and not full_extended_lro else method.client_method_name|snake_case, method_output = method.extended_lro.operation_type if method.extended_lro and not full_extended_lro else method.output %}{% if method.http_options %}
10231023
{# TODO(kbandes): remove this if condition when lro and client streaming are supported. #}
10241024
{% if not method.client_streaming %}
@@ -1218,8 +1218,25 @@ def test_{{ method_name }}_rest_required_fields(request_type={{ method.input.ide
12181218
('$alt', 'json;enum-encoding=int')
12191219
{% endif %}
12201220
]
1221+
{% with method_settings = api.all_method_settings.get(method.meta.address.proto) %}
1222+
{% if method_settings is not none %}
1223+
{% for auto_populated_field in method_settings.auto_populated_fields %}
1224+
# Ensure that the uuid4 field is set according to AIP 4235
1225+
for i, (key, value) in enumerate(req.call_args.kwargs['params']):
1226+
if key == "{{ auto_populated_field|camel_case }}":
1227+
assert re.match(r"{{ get_uuid4_re() }}", value)
1228+
break
1229+
1230+
# Include {{ auto_populated_field|camel_case }} within expected_params with value mock.ANY
1231+
expected_params = [p for p in expected_params if p[0] != "{{ auto_populated_field|camel_case }}"]
1232+
expected_params.append(
1233+
("{{ auto_populated_field|camel_case }}", mock.ANY)
1234+
)
1235+
{% endfor %}
1236+
{% endif %}
1237+
{% endwith %}
12211238
actual_params = req.call_args.kwargs['params']
1222-
assert expected_params == actual_params
1239+
assert sorted(expected_params) == sorted(actual_params)
12231240

12241241

12251242
def test_{{ method_name }}_rest_unset_required_fields():

packages/gapic-generator/tests/integration/goldens/asset/tests/unit/gapic/asset_v1/test_asset_service.py

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9196,7 +9196,7 @@ def test_export_assets_rest_required_fields(request_type=asset_service.ExportAss
91969196
expected_params = [
91979197
]
91989198
actual_params = req.call_args.kwargs['params']
9199-
assert expected_params == actual_params
9199+
assert sorted(expected_params) == sorted(actual_params)
92009200

92019201

92029202
def test_export_assets_rest_unset_required_fields():
@@ -9310,7 +9310,7 @@ def test_list_assets_rest_required_fields(request_type=asset_service.ListAssetsR
93109310
expected_params = [
93119311
]
93129312
actual_params = req.call_args.kwargs['params']
9313-
assert expected_params == actual_params
9313+
assert sorted(expected_params) == sorted(actual_params)
93149314

93159315

93169316
def test_list_assets_rest_unset_required_fields():
@@ -9540,7 +9540,7 @@ def test_batch_get_assets_history_rest_required_fields(request_type=asset_servic
95409540
expected_params = [
95419541
]
95429542
actual_params = req.call_args.kwargs['params']
9543-
assert expected_params == actual_params
9543+
assert sorted(expected_params) == sorted(actual_params)
95449544

95459545

95469546
def test_batch_get_assets_history_rest_unset_required_fields():
@@ -9657,7 +9657,7 @@ def test_create_feed_rest_required_fields(request_type=asset_service.CreateFeedR
96579657
expected_params = [
96589658
]
96599659
actual_params = req.call_args.kwargs['params']
9660-
assert expected_params == actual_params
9660+
assert sorted(expected_params) == sorted(actual_params)
96619661

96629662

96639663
def test_create_feed_rest_unset_required_fields():
@@ -9823,7 +9823,7 @@ def test_get_feed_rest_required_fields(request_type=asset_service.GetFeedRequest
98239823
expected_params = [
98249824
]
98259825
actual_params = req.call_args.kwargs['params']
9826-
assert expected_params == actual_params
9826+
assert sorted(expected_params) == sorted(actual_params)
98279827

98289828

98299829
def test_get_feed_rest_unset_required_fields():
@@ -9989,7 +9989,7 @@ def test_list_feeds_rest_required_fields(request_type=asset_service.ListFeedsReq
99899989
expected_params = [
99909990
]
99919991
actual_params = req.call_args.kwargs['params']
9992-
assert expected_params == actual_params
9992+
assert sorted(expected_params) == sorted(actual_params)
99939993

99949994

99959995
def test_list_feeds_rest_unset_required_fields():
@@ -10151,7 +10151,7 @@ def test_update_feed_rest_required_fields(request_type=asset_service.UpdateFeedR
1015110151
expected_params = [
1015210152
]
1015310153
actual_params = req.call_args.kwargs['params']
10154-
assert expected_params == actual_params
10154+
assert sorted(expected_params) == sorted(actual_params)
1015510155

1015610156

1015710157
def test_update_feed_rest_unset_required_fields():
@@ -10314,7 +10314,7 @@ def test_delete_feed_rest_required_fields(request_type=asset_service.DeleteFeedR
1031410314
expected_params = [
1031510315
]
1031610316
actual_params = req.call_args.kwargs['params']
10317-
assert expected_params == actual_params
10317+
assert sorted(expected_params) == sorted(actual_params)
1031810318

1031910319

1032010320
def test_delete_feed_rest_unset_required_fields():
@@ -10480,7 +10480,7 @@ def test_search_all_resources_rest_required_fields(request_type=asset_service.Se
1048010480
expected_params = [
1048110481
]
1048210482
actual_params = req.call_args.kwargs['params']
10483-
assert expected_params == actual_params
10483+
assert sorted(expected_params) == sorted(actual_params)
1048410484

1048510485

1048610486
def test_search_all_resources_rest_unset_required_fields():
@@ -10714,7 +10714,7 @@ def test_search_all_iam_policies_rest_required_fields(request_type=asset_service
1071410714
expected_params = [
1071510715
]
1071610716
actual_params = req.call_args.kwargs['params']
10717-
assert expected_params == actual_params
10717+
assert sorted(expected_params) == sorted(actual_params)
1071810718

1071910719

1072010720
def test_search_all_iam_policies_rest_unset_required_fields():
@@ -10941,7 +10941,7 @@ def test_analyze_iam_policy_rest_required_fields(request_type=asset_service.Anal
1094110941
expected_params = [
1094210942
]
1094310943
actual_params = req.call_args.kwargs['params']
10944-
assert expected_params == actual_params
10944+
assert sorted(expected_params) == sorted(actual_params)
1094510945

1094610946

1094710947
def test_analyze_iam_policy_rest_unset_required_fields():
@@ -11050,7 +11050,7 @@ def test_analyze_iam_policy_longrunning_rest_required_fields(request_type=asset_
1105011050
expected_params = [
1105111051
]
1105211052
actual_params = req.call_args.kwargs['params']
11053-
assert expected_params == actual_params
11053+
assert sorted(expected_params) == sorted(actual_params)
1105411054

1105511055

1105611056
def test_analyze_iam_policy_longrunning_rest_unset_required_fields():
@@ -11175,7 +11175,7 @@ def test_analyze_move_rest_required_fields(request_type=asset_service.AnalyzeMov
1117511175
),
1117611176
]
1117711177
actual_params = req.call_args.kwargs['params']
11178-
assert expected_params == actual_params
11178+
assert sorted(expected_params) == sorted(actual_params)
1117911179

1118011180

1118111181
def test_analyze_move_rest_unset_required_fields():
@@ -11288,7 +11288,7 @@ def test_query_assets_rest_required_fields(request_type=asset_service.QueryAsset
1128811288
expected_params = [
1128911289
]
1129011290
actual_params = req.call_args.kwargs['params']
11291-
assert expected_params == actual_params
11291+
assert sorted(expected_params) == sorted(actual_params)
1129211292

1129311293

1129411294
def test_query_assets_rest_unset_required_fields():
@@ -11414,7 +11414,7 @@ def test_create_saved_query_rest_required_fields(request_type=asset_service.Crea
1141411414
),
1141511415
]
1141611416
actual_params = req.call_args.kwargs['params']
11417-
assert expected_params == actual_params
11417+
assert sorted(expected_params) == sorted(actual_params)
1141811418

1141911419

1142011420
def test_create_saved_query_rest_unset_required_fields():
@@ -11584,7 +11584,7 @@ def test_get_saved_query_rest_required_fields(request_type=asset_service.GetSave
1158411584
expected_params = [
1158511585
]
1158611586
actual_params = req.call_args.kwargs['params']
11587-
assert expected_params == actual_params
11587+
assert sorted(expected_params) == sorted(actual_params)
1158811588

1158911589

1159011590
def test_get_saved_query_rest_unset_required_fields():
@@ -11752,7 +11752,7 @@ def test_list_saved_queries_rest_required_fields(request_type=asset_service.List
1175211752
expected_params = [
1175311753
]
1175411754
actual_params = req.call_args.kwargs['params']
11755-
assert expected_params == actual_params
11755+
assert sorted(expected_params) == sorted(actual_params)
1175611756

1175711757

1175811758
def test_list_saved_queries_rest_unset_required_fields():
@@ -11978,7 +11978,7 @@ def test_update_saved_query_rest_required_fields(request_type=asset_service.Upda
1197811978
expected_params = [
1197911979
]
1198011980
actual_params = req.call_args.kwargs['params']
11981-
assert expected_params == actual_params
11981+
assert sorted(expected_params) == sorted(actual_params)
1198211982

1198311983

1198411984
def test_update_saved_query_rest_unset_required_fields():
@@ -12143,7 +12143,7 @@ def test_delete_saved_query_rest_required_fields(request_type=asset_service.Dele
1214312143
expected_params = [
1214412144
]
1214512145
actual_params = req.call_args.kwargs['params']
12146-
assert expected_params == actual_params
12146+
assert sorted(expected_params) == sorted(actual_params)
1214712147

1214812148

1214912149
def test_delete_saved_query_rest_unset_required_fields():
@@ -12320,7 +12320,7 @@ def test_batch_get_effective_iam_policies_rest_required_fields(request_type=asse
1232012320
),
1232112321
]
1232212322
actual_params = req.call_args.kwargs['params']
12323-
assert expected_params == actual_params
12323+
assert sorted(expected_params) == sorted(actual_params)
1232412324

1232512325

1232612326
def test_batch_get_effective_iam_policies_rest_unset_required_fields():
@@ -12445,7 +12445,7 @@ def test_analyze_org_policies_rest_required_fields(request_type=asset_service.An
1244512445
),
1244612446
]
1244712447
actual_params = req.call_args.kwargs['params']
12448-
assert expected_params == actual_params
12448+
assert sorted(expected_params) == sorted(actual_params)
1244912449

1245012450

1245112451
def test_analyze_org_policies_rest_unset_required_fields():
@@ -12690,7 +12690,7 @@ def test_analyze_org_policy_governed_containers_rest_required_fields(request_typ
1269012690
),
1269112691
]
1269212692
actual_params = req.call_args.kwargs['params']
12693-
assert expected_params == actual_params
12693+
assert sorted(expected_params) == sorted(actual_params)
1269412694

1269512695

1269612696
def test_analyze_org_policy_governed_containers_rest_unset_required_fields():
@@ -12935,7 +12935,7 @@ def test_analyze_org_policy_governed_assets_rest_required_fields(request_type=as
1293512935
),
1293612936
]
1293712937
actual_params = req.call_args.kwargs['params']
12938-
assert expected_params == actual_params
12938+
assert sorted(expected_params) == sorted(actual_params)
1293912939

1294012940

1294112941
def test_analyze_org_policy_governed_assets_rest_unset_required_fields():

packages/gapic-generator/tests/integration/goldens/credentials/tests/unit/gapic/credentials_v1/test_iam_credentials.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2405,7 +2405,7 @@ def test_generate_access_token_rest_required_fields(request_type=common.Generate
24052405
expected_params = [
24062406
]
24072407
actual_params = req.call_args.kwargs['params']
2408-
assert expected_params == actual_params
2408+
assert sorted(expected_params) == sorted(actual_params)
24092409

24102410

24112411
def test_generate_access_token_rest_unset_required_fields():
@@ -2582,7 +2582,7 @@ def test_generate_id_token_rest_required_fields(request_type=common.GenerateIdTo
25822582
expected_params = [
25832583
]
25842584
actual_params = req.call_args.kwargs['params']
2585-
assert expected_params == actual_params
2585+
assert sorted(expected_params) == sorted(actual_params)
25862586

25872587

25882588
def test_generate_id_token_rest_unset_required_fields():
@@ -2759,7 +2759,7 @@ def test_sign_blob_rest_required_fields(request_type=common.SignBlobRequest):
27592759
expected_params = [
27602760
]
27612761
actual_params = req.call_args.kwargs['params']
2762-
assert expected_params == actual_params
2762+
assert sorted(expected_params) == sorted(actual_params)
27632763

27642764

27652765
def test_sign_blob_rest_unset_required_fields():
@@ -2934,7 +2934,7 @@ def test_sign_jwt_rest_required_fields(request_type=common.SignJwtRequest):
29342934
expected_params = [
29352935
]
29362936
actual_params = req.call_args.kwargs['params']
2937-
assert expected_params == actual_params
2937+
assert sorted(expected_params) == sorted(actual_params)
29382938

29392939

29402940
def test_sign_jwt_rest_unset_required_fields():

0 commit comments

Comments
 (0)