@@ -1132,6 +1132,57 @@ def test_download_artifact_for_model_created_by_reference(
1132
1132
1133
1133
mock_large_download .assert_called ()
1134
1134
1135
+ @patch ("ads.common.oci_client.OCIClientFactory" )
1136
+ def test_add_artifact_uri (self , mock_oci_client_factory ):
1137
+ r = ObjectVersionSummary ()
1138
+ r .name = "model-linear-2/linear-2.pkl"
1139
+ r .size = 566
1140
+ r .time_modified = "2024-04-22T12:34:26.670000+00:00"
1141
+ r .version_id = "dc26a7d2-8041-4b37-8ed0-9e8c10869340"
1142
+ resp = [r ]
1143
+
1144
+ # Mock response object
1145
+ mock_response = MagicMock ()
1146
+ mock_response .data .items = resp
1147
+ mock_response .has_next_page = False
1148
+ mock_response .next_page = None
1149
+
1150
+ # Mock object storage client
1151
+ mock_object_storage_client = MagicMock ()
1152
+ mock_object_storage_client .list_object_versions .return_value = mock_response
1153
+
1154
+ mock_oci_client_factory .return_value .object_storage = mock_object_storage_client
1155
+
1156
+ # self.mock_dsc_model
1157
+ self .mock_dsc_model .add_artifact (uri = "oci://bucket@namespace/prefix" )
1158
+ expected_out = {
1159
+ "version" : "1.0" ,
1160
+ "type" : "modelOSSReferenceDescription" ,
1161
+ "models" : [
1162
+ {
1163
+ "namespace" : "namespace" ,
1164
+ "bucketName" : "bucket" ,
1165
+ "prefix" : "prefix" ,
1166
+ "objects" : [
1167
+ {
1168
+ "name" : "model-linear-2/linear-2.pkl" ,
1169
+ "version" : "dc26a7d2-8041-4b37-8ed0-9e8c10869340" ,
1170
+ "sizeInBytes" : 566 ,
1171
+ }
1172
+ ],
1173
+ }
1174
+ ],
1175
+ }
1176
+ assert self .mock_dsc_model .model_file_description == expected_out
1177
+ self .mock_dsc_model .remove_artifact (uri = "oci://bucket@namespace/prefix" )
1178
+ assert self .mock_dsc_model .model_file_description != expected_out
1179
+ expected_out = {
1180
+ "version" : "1.0" ,
1181
+ "type" : "modelOSSReferenceDescription" ,
1182
+ "models" : [],
1183
+ }
1184
+ assert self .mock_dsc_model .model_file_description == expected_out
1185
+
1135
1186
@patch ("ads.common.oci_client.OCIClientFactory" )
1136
1187
def test_add_artifact (self , mock_oci_client_factory ):
1137
1188
r = ObjectVersionSummary ()
@@ -1189,8 +1240,28 @@ def test_add_artifact(self, mock_oci_client_factory):
1189
1240
}
1190
1241
assert self .mock_dsc_model .model_file_description == expected_out
1191
1242
1243
+ def test_remove_artifact_uri (self ):
1244
+ self .mock_dsc_model .remove_artifact (
1245
+ uri = "oci://unzip-multi-model@ociodscdev/model-linear-1"
1246
+ )
1247
+
1248
+ assert self .mock_dsc_model .model_file_description == None
1249
+
1250
+ self .mock_dsc_model .set_spec (
1251
+ CONST_MODEL_FILE_DESCRIPTION , deepcopy (MODEL_BY_REF_JSON )
1252
+ )
1253
+ assert self .mock_dsc_model .model_file_description == MODEL_BY_REF_JSON
1254
+
1255
+ self .mock_dsc_model .remove_artifact (
1256
+ uri = "oci://unzip-multi-model@ociodscdev/model-linear-1"
1257
+ )
1258
+ assert self .mock_dsc_model .model_file_description != MODEL_BY_REF_JSON
1259
+
1260
+ exptected_json = deepcopy (MODEL_BY_REF_JSON )
1261
+ exptected_json ["models" ] = exptected_json ["models" ][1 :]
1262
+ assert self .mock_dsc_model .model_file_description == exptected_json
1263
+
1192
1264
def test_remove_artifact (self ):
1193
- # self.mock_dsc_model.remove_artifact(uri="oci://unzip-multi-model@ociodscdev/model-linear-1")
1194
1265
self .mock_dsc_model .remove_artifact (
1195
1266
namespace = "ociodscdev" , bucket = "unzip-multi-model" , prefix = "model-linear-1"
1196
1267
)
@@ -1202,7 +1273,6 @@ def test_remove_artifact(self):
1202
1273
)
1203
1274
assert self .mock_dsc_model .model_file_description == MODEL_BY_REF_JSON
1204
1275
1205
- # self.mock_dsc_model.remove_artifact(uri="oci://unzip-multi-model@ociodscdev/model-linear-1")
1206
1276
self .mock_dsc_model .remove_artifact (
1207
1277
namespace = "ociodscdev" , bucket = "unzip-multi-model" , prefix = "model-linear-1"
1208
1278
)
0 commit comments