@@ -143,6 +143,37 @@ def test_download_model_local_only(self):
143143 )
144144 self .assertTrue (self .first_commit_hash in storage_folder ) # has expected revision
145145
146+ # Test with local_dir
147+ with SoftTemporaryDirectory () as tmpdir :
148+ # first download folder to local_dir
149+ snapshot_download (self .repo_id , local_dir = tmpdir )
150+ # now load from local_dir
151+ storage_folder = snapshot_download (self .repo_id , local_dir = tmpdir , local_files_only = True )
152+ self .assertEquals (str (tmpdir ), storage_folder )
153+
154+ def test_download_model_to_local_dir_with_offline_mode (self ):
155+ """Test that an already downloaded folder is returned when there is a connection error"""
156+ # first download folder to local_dir
157+ with SoftTemporaryDirectory () as tmpdir :
158+ snapshot_download (self .repo_id , local_dir = tmpdir )
159+ # Check that the folder is returned when there is a connection error
160+ for offline_mode in OfflineSimulationMode :
161+ with offline (mode = offline_mode ):
162+ storage_folder = snapshot_download (self .repo_id , local_dir = tmpdir )
163+ self .assertEquals (str (tmpdir ), storage_folder )
164+
165+ def test_download_model_offline_mode_not_in_local_dir (self ):
166+ """Test when connection error but local_dir is empty."""
167+ with SoftTemporaryDirectory () as tmpdir :
168+ with self .assertRaises (LocalEntryNotFoundError ):
169+ snapshot_download (self .repo_id , local_dir = tmpdir , local_files_only = True )
170+
171+ for offline_mode in OfflineSimulationMode :
172+ with offline (mode = offline_mode ):
173+ with SoftTemporaryDirectory () as tmpdir :
174+ with self .assertRaises (LocalEntryNotFoundError ):
175+ snapshot_download (self .repo_id , local_dir = tmpdir )
176+
146177 def test_download_model_offline_mode_not_cached (self ):
147178 """Test when connection error but cache is empty."""
148179 with SoftTemporaryDirectory () as tmpdir :
0 commit comments