@@ -282,6 +282,17 @@ def test_clone_unsafe_options(self, rw_repo):
282282 rw_repo .clone (tmp_dir , multi_options = [unsafe_option ])
283283 assert not tmp_file .exists ()
284284
285+ unsafe_options = [
286+ {"upload-pack" : f"touch { tmp_file } " },
287+ {"u" : f"touch { tmp_file } " },
288+ {"config" : "protocol.ext.allow=always" },
289+ {"c" : "protocol.ext.allow=always" },
290+ ]
291+ for unsafe_option in unsafe_options :
292+ with self .assertRaises (UnsafeOptionError ):
293+ rw_repo .clone (tmp_dir , ** unsafe_option )
294+ assert not tmp_file .exists ()
295+
285296 @with_rw_repo ("HEAD" )
286297 def test_clone_unsafe_options_allowed (self , rw_repo ):
287298 with tempfile .TemporaryDirectory () as tdir :
@@ -341,6 +352,17 @@ def test_clone_from_unsafe_options(self, rw_repo):
341352 Repo .clone_from (rw_repo .working_dir , tmp_dir , multi_options = [unsafe_option ])
342353 assert not tmp_file .exists ()
343354
355+ unsafe_options = [
356+ {"upload-pack" : f"touch { tmp_file } " },
357+ {"u" : f"touch { tmp_file } " },
358+ {"config" : "protocol.ext.allow=always" },
359+ {"c" : "protocol.ext.allow=always" },
360+ ]
361+ for unsafe_option in unsafe_options :
362+ with self .assertRaises (UnsafeOptionError ):
363+ Repo .clone_from (rw_repo .working_dir , tmp_dir , ** unsafe_option )
364+ assert not tmp_file .exists ()
365+
344366 @with_rw_repo ("HEAD" )
345367 def test_clone_from_unsafe_options_allowed (self , rw_repo ):
346368 with tempfile .TemporaryDirectory () as tdir :
@@ -1410,4 +1432,4 @@ def test_ignored_raises_error_w_symlink(self):
14101432 os .symlink (tmp_dir / "target" , tmp_dir / "symlink" )
14111433
14121434 with pytest .raises (GitCommandError ):
1413- temp_repo .ignored (tmp_dir / "symlink/file.txt" )
1435+ temp_repo .ignored (tmp_dir / "symlink/file.txt" )
0 commit comments