@@ -235,6 +235,63 @@ def test_restore_container(self, mock_model_operation: ModelOperations) -> None:
235235 resource_group_name = mock_model_operation ._resource_group_name ,
236236 )
237237
238+ def test_download_from_gen2_with_none_cred (self , mock_model_operation : ModelOperations ) -> None :
239+ name = "random_string"
240+ version = "1"
241+ model = Model (
242+ name = name ,
243+ version = version ,
244+ path = "azureml://subscriptions/subscription_id/resourcegroups/rg-name/workspaces/gen2test/datastores/adls_gen2/paths/gen2test/" ,
245+ )
246+ from azure .ai .ml .entities import AzureDataLakeGen2Datastore
247+
248+ datastore = AzureDataLakeGen2Datastore (name = "gen2_datastore" , account_name = "gen2_account" , filesystem = "gen2" )
249+ storage_client = Mock ()
250+ with patch (
251+ "azure.ai.ml.operations._model_operations.get_storage_client" , return_value = storage_client
252+ ) as get_client_mock , patch (
253+ "azure.ai.ml.operations._model_operations.Model._from_rest_object" ,
254+ return_value = model ,
255+ ), patch (
256+ "azure.ai.ml.operations._model_operations.DatastoreOperations.get" , return_value = datastore
257+ ):
258+ mock_model_operation .download (name = name , version = version )
259+ get_client_mock .assert_called_once ()
260+
261+ def test_download_from_gen2_with_sp_cred (self , mock_model_operation : ModelOperations ) -> None :
262+ name = "random_string"
263+ version = "1"
264+ model = Model (
265+ name = name ,
266+ version = version ,
267+ path = "azureml://subscriptions/subscription_id/resourcegroups/rg-name/workspaces/gen2test/datastores/adls_gen2/paths/gen2test/" ,
268+ )
269+ from azure .ai .ml .entities import AzureDataLakeGen2Datastore
270+ from azure .ai .ml .entities ._credentials import ServicePrincipalConfiguration
271+
272+ datastore = AzureDataLakeGen2Datastore (
273+ name = "adls_gen2_example" ,
274+ description = "Datastore pointing to an Azure Data Lake Storage Gen2." ,
275+ account_name = "mytestdatalakegen2" ,
276+ filesystem = "my-gen2-container" ,
277+ credentials = ServicePrincipalConfiguration (
278+ tenant_id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" ,
279+ client_id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" ,
280+ client_secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ,
281+ ),
282+ )
283+ storage_client = Mock ()
284+ with patch (
285+ "azure.ai.ml.operations._model_operations.get_storage_client" , return_value = storage_client
286+ ) as get_client_mock , patch (
287+ "azure.ai.ml.operations._model_operations.Model._from_rest_object" ,
288+ return_value = model ,
289+ ), patch (
290+ "azure.ai.ml.operations._model_operations.DatastoreOperations.get" , return_value = datastore
291+ ):
292+ mock_model_operation .download (name = name , version = version )
293+ get_client_mock .assert_called_once ()
294+
238295 def test_create_with_datastore (
239296 self ,
240297 mock_workspace_scope : OperationScope ,
0 commit comments