Merge pull request #2130 from gitpython-developers/fix-multi-options · gitpython-developers/GitPython@da54523 · GitHub
Skip to content

Commit da54523

Browse files
authored
Merge pull request #2130 from gitpython-developers/fix-multi-options
Make sure that multi-options are checked after splitting them with `shlex`
2 parents 75e6c6b + c9a2678 commit da54523

3 files changed

Lines changed: 31 additions & 2 deletions

File tree

git/repo/base.py

Lines changed: 2 additions & 2 deletions

test/test_clone.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,15 @@ def test_clone_unsafe_options(self, rw_repo):
137137
rw_repo.clone(tmp_dir, **unsafe_option)
138138
assert not tmp_file.exists()
139139

140+
@with_rw_repo("HEAD")
141+
def test_clone_unsafe_options_are_checked_after_splitting_multi_options(self, rw_repo):
142+
with tempfile.TemporaryDirectory() as tdir:
143+
tmp_dir = pathlib.Path(tdir)
144+
payload = "--single-branch --config protocol.ext.allow=always"
145+
146+
with self.assertRaises(UnsafeOptionError):
147+
rw_repo.clone(tmp_dir, multi_options=[payload])
148+
140149
@pytest.mark.xfail(
141150
sys.platform == "win32",
142151
reason=(
@@ -216,6 +225,15 @@ def test_clone_from_unsafe_options(self, rw_repo):
216225
Repo.clone_from(rw_repo.working_dir, tmp_dir, **unsafe_option)
217226
assert not tmp_file.exists()
218227

228+
@with_rw_repo("HEAD")
229+
def test_clone_from_unsafe_options_are_checked_after_splitting_multi_options(self, rw_repo):
230+
with tempfile.TemporaryDirectory() as tdir:
231+
tmp_dir = pathlib.Path(tdir)
232+
payload = "--single-branch --config protocol.ext.allow=always"
233+
234+
with self.assertRaises(UnsafeOptionError):
235+
Repo.clone_from(rw_repo.working_dir, tmp_dir, multi_options=[payload])
236+
219237
@pytest.mark.xfail(
220238
sys.platform == "win32",
221239
reason=(

test/test_submodule.py

Lines changed: 11 additions & 0 deletions

0 commit comments

Comments
 (0)