255
255
_TEST_VERSION_ID = "2"
256
256
_TEST_VERSION_ALIAS_1 = "myalias"
257
257
_TEST_VERSION_ALIAS_2 = "youralias"
258
- _TEST_MODEL_VERSION_DESCRIPTION = "My version description"
258
+ _TEST_MODEL_VERSION_DESCRIPTION_1 = "My version 1 description"
259
+ _TEST_MODEL_VERSION_DESCRIPTION_2 = "My version 2 description"
260
+ _TEST_MODEL_VERSION_DESCRIPTION_3 = "My version 3 description"
259
261
260
262
_TEST_MODEL_VERSIONS_LIST = [
261
263
gca_model .Model (
265
267
display_name = _TEST_MODEL_NAME ,
266
268
name = f"{ _TEST_MODEL_PARENT } @1" ,
267
269
version_aliases = ["default" ],
268
- version_description = _TEST_MODEL_VERSION_DESCRIPTION ,
270
+ version_description = _TEST_MODEL_VERSION_DESCRIPTION_1 ,
269
271
),
270
272
gca_model .Model (
271
273
version_id = "2" ,
274
276
display_name = _TEST_MODEL_NAME ,
275
277
name = f"{ _TEST_MODEL_PARENT } @2" ,
276
278
version_aliases = [_TEST_VERSION_ALIAS_1 , _TEST_VERSION_ALIAS_2 ],
277
- version_description = _TEST_MODEL_VERSION_DESCRIPTION ,
279
+ version_description = _TEST_MODEL_VERSION_DESCRIPTION_2 ,
278
280
),
279
281
gca_model .Model (
280
282
version_id = "3" ,
283
285
display_name = _TEST_MODEL_NAME ,
284
286
name = f"{ _TEST_MODEL_PARENT } @3" ,
285
287
version_aliases = [],
286
- version_description = _TEST_MODEL_VERSION_DESCRIPTION ,
288
+ version_description = _TEST_MODEL_VERSION_DESCRIPTION_3 ,
289
+ labels = _TEST_LABEL ,
287
290
),
288
291
]
292
+ _TEST_MODEL_VERSIONS_WITH_FILTER_LIST = [_TEST_MODEL_VERSIONS_LIST [2 ]]
289
293
290
294
_TEST_MODELS_LIST = _TEST_MODEL_VERSIONS_LIST + [
291
295
gca_model .Model (
295
299
display_name = _TEST_MODEL_NAME_ALT ,
296
300
name = _TEST_MODEL_PARENT_ALT ,
297
301
version_aliases = ["default" ],
298
- version_description = _TEST_MODEL_VERSION_DESCRIPTION ,
302
+ version_description = _TEST_MODEL_VERSION_DESCRIPTION_1 ,
299
303
),
300
304
]
301
305
306
310
display_name = _TEST_MODEL_NAME ,
307
311
name = f"{ _TEST_MODEL_PARENT } @{ _TEST_VERSION_ID } " ,
308
312
version_aliases = [_TEST_VERSION_ALIAS_1 , _TEST_VERSION_ALIAS_2 ],
309
- version_description = _TEST_MODEL_VERSION_DESCRIPTION ,
313
+ version_description = _TEST_MODEL_VERSION_DESCRIPTION_2 ,
310
314
)
311
315
312
316
_TEST_NETWORK = f"projects/{ _TEST_PROJECT } /global/networks/{ _TEST_ID } "
@@ -683,6 +687,15 @@ def list_model_versions_mock():
683
687
yield list_model_versions_mock
684
688
685
689
690
+ @pytest .fixture
691
+ def list_model_versions_with_filter_mock ():
692
+ with mock .patch .object (
693
+ model_service_client .ModelServiceClient , "list_model_versions"
694
+ ) as list_model_versions_mock :
695
+ list_model_versions_mock .return_value = _TEST_MODEL_VERSIONS_WITH_FILTER_LIST
696
+ yield list_model_versions_mock
697
+
698
+
686
699
@pytest .fixture
687
700
def list_models_mock ():
688
701
with mock .patch .object (
@@ -2514,7 +2527,7 @@ def test_init_with_version_in_resource_name(self, get_model_with_version):
2514
2527
assert model .display_name == _TEST_MODEL_NAME
2515
2528
assert model .resource_name == _TEST_MODEL_PARENT
2516
2529
assert model .version_id == _TEST_VERSION_ID
2517
- assert model .version_description == _TEST_MODEL_VERSION_DESCRIPTION
2530
+ assert model .version_description == _TEST_MODEL_VERSION_DESCRIPTION_2
2518
2531
# The Model yielded from upload should not have a version in resource name
2519
2532
assert "@" not in model .resource_name
2520
2533
# The Model yielded from upload SHOULD have a version in the versioned resource name
@@ -2527,7 +2540,7 @@ def test_init_with_version_arg(self, get_model_with_version):
2527
2540
assert model .display_name == _TEST_MODEL_NAME
2528
2541
assert model .resource_name == _TEST_MODEL_PARENT
2529
2542
assert model .version_id == _TEST_VERSION_ID
2530
- assert model .version_description == _TEST_MODEL_VERSION_DESCRIPTION
2543
+ assert model .version_description == _TEST_MODEL_VERSION_DESCRIPTION_2
2531
2544
# The Model yielded from upload should not have a version in resource name
2532
2545
assert "@" not in model .resource_name
2533
2546
# The Model yielded from upload SHOULD have a version in the versioned resource name
@@ -2584,7 +2597,7 @@ def test_upload_new_version(
2584
2597
"upload_request_timeout" : None ,
2585
2598
"model_id" : _TEST_ID ,
2586
2599
"parent_model" : parent ,
2587
- "version_description" : _TEST_MODEL_VERSION_DESCRIPTION ,
2600
+ "version_description" : _TEST_MODEL_VERSION_DESCRIPTION_2 ,
2588
2601
"version_aliases" : aliases ,
2589
2602
"is_default_version" : default ,
2590
2603
}
@@ -2610,7 +2623,7 @@ def test_upload_new_version(
2610
2623
assert upload_model_request .model .version_aliases == goal
2611
2624
assert (
2612
2625
upload_model_request .model .version_description
2613
- == _TEST_MODEL_VERSION_DESCRIPTION
2626
+ == _TEST_MODEL_VERSION_DESCRIPTION_2
2614
2627
)
2615
2628
assert upload_model_request .parent_model == _TEST_MODEL_PARENT
2616
2629
assert upload_model_request .model_id == _TEST_ID
@@ -2622,7 +2635,7 @@ def test_get_model_instance_from_registry(self, get_model_with_version):
2622
2635
assert model .display_name == _TEST_MODEL_NAME
2623
2636
assert model .resource_name == _TEST_MODEL_PARENT
2624
2637
assert model .version_id == _TEST_VERSION_ID
2625
- assert model .version_description == _TEST_MODEL_VERSION_DESCRIPTION
2638
+ assert model .version_description == _TEST_MODEL_VERSION_DESCRIPTION_2
2626
2639
2627
2640
def test_list_versions (self , list_model_versions_mock , get_model_with_version ):
2628
2641
my_model = models .Model (_TEST_MODEL_NAME , _TEST_PROJECT , _TEST_LOCATION )
@@ -2643,6 +2656,28 @@ def test_list_versions(self, list_model_versions_mock, get_model_with_version):
2643
2656
assert model .name .startswith (ver .model_resource_name )
2644
2657
assert model .name .endswith (ver .version_id )
2645
2658
2659
+ def test_list_versions_with_filter (
2660
+ self , list_model_versions_with_filter_mock , get_model_with_version
2661
+ ):
2662
+ my_model = models .Model (_TEST_MODEL_NAME , _TEST_PROJECT , _TEST_LOCATION )
2663
+ versions = my_model .versioning_registry .list_versions (
2664
+ filter = 'labels.team="experimentation"'
2665
+ )
2666
+
2667
+ assert len (versions ) == len (_TEST_MODEL_VERSIONS_WITH_FILTER_LIST )
2668
+
2669
+ ver = versions [0 ]
2670
+ model = _TEST_MODEL_VERSIONS_WITH_FILTER_LIST [0 ]
2671
+ assert ver .version_id == "3"
2672
+ assert ver .version_create_time == model .version_create_time
2673
+ assert ver .version_update_time == model .version_update_time
2674
+ assert ver .model_display_name == model .display_name
2675
+ assert ver .version_aliases == model .version_aliases
2676
+ assert ver .version_description == model .version_description
2677
+
2678
+ assert model .name .startswith (ver .model_resource_name )
2679
+ assert model .name .endswith (ver .version_id )
2680
+
2646
2681
def test_get_version_info (self , get_model_with_version ):
2647
2682
my_model = models .Model (_TEST_MODEL_NAME , _TEST_PROJECT , _TEST_LOCATION )
2648
2683
ver = my_model .versioning_registry .get_version_info ("2" )
0 commit comments