Skip to content

Commit 6dbe514

Browse files
committed
Update tests
1 parent 5612349 commit 6dbe514

File tree

2 files changed

+42
-19
lines changed

2 files changed

+42
-19
lines changed

src/sagemaker/git_utils.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from __future__ import absolute_import
1515

1616
import os
17+
from pathlib import Path
1718
import subprocess
1819
import tempfile
1920
import warnings

tests/unit/test_git_utils.py

Lines changed: 41 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
import pytest
1616
import os
17+
from pathlib import Path
1718
import subprocess
1819
from mock import patch, ANY
1920

@@ -34,10 +35,11 @@
3435

3536
@patch("subprocess.check_call")
3637
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
38+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
3739
@patch("os.path.isfile", return_value=True)
3840
@patch("os.path.isdir", return_value=True)
3941
@patch("os.path.exists", return_value=True)
40-
def test_git_clone_repo_succeed(exists, isdir, isfile, mkdtemp, check_call):
42+
def test_git_clone_repo_succeed(exists, isdir, isfile, tempdir, mkdtemp, check_call):
4143
git_config = {"repo": PUBLIC_GIT_REPO, "branch": PUBLIC_BRANCH, "commit": PUBLIC_COMMIT}
4244
entry_point = "entry_point"
4345
source_dir = "source_dir"
@@ -88,7 +90,8 @@ def test_git_clone_repo_git_argument_wrong_format():
8890
),
8991
)
9092
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
91-
def test_git_clone_repo_clone_fail(mkdtemp, check_call):
93+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
94+
def test_git_clone_repo_clone_fail(tempdir, mkdtemp, check_call):
9295
git_config = {"repo": PUBLIC_GIT_REPO, "branch": PUBLIC_BRANCH, "commit": PUBLIC_COMMIT}
9396
entry_point = "entry_point"
9497
source_dir = "source_dir"
@@ -103,7 +106,8 @@ def test_git_clone_repo_clone_fail(mkdtemp, check_call):
103106
side_effect=[True, subprocess.CalledProcessError(returncode=1, cmd="git checkout banana")],
104107
)
105108
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
106-
def test_git_clone_repo_branch_not_exist(mkdtemp, check_call):
109+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
110+
def test_git_clone_repo_branch_not_exist(tempdir, mkdtemp, check_call):
107111
git_config = {"repo": PUBLIC_GIT_REPO, "branch": PUBLIC_BRANCH, "commit": PUBLIC_COMMIT}
108112
entry_point = "entry_point"
109113
source_dir = "source_dir"
@@ -122,7 +126,8 @@ def test_git_clone_repo_branch_not_exist(mkdtemp, check_call):
122126
],
123127
)
124128
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
125-
def test_git_clone_repo_commit_not_exist(mkdtemp, check_call):
129+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
130+
def test_git_clone_repo_commit_not_exist(tempdir, mkdtemp, check_call):
126131
git_config = {"repo": PUBLIC_GIT_REPO, "branch": PUBLIC_BRANCH, "commit": PUBLIC_COMMIT}
127132
entry_point = "entry_point"
128133
source_dir = "source_dir"
@@ -134,10 +139,11 @@ def test_git_clone_repo_commit_not_exist(mkdtemp, check_call):
134139

135140
@patch("subprocess.check_call")
136141
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
142+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
137143
@patch("os.path.isfile", return_value=False)
138144
@patch("os.path.isdir", return_value=True)
139145
@patch("os.path.exists", return_value=True)
140-
def test_git_clone_repo_entry_point_not_exist(exists, isdir, isfile, mkdtemp, heck_call):
146+
def test_git_clone_repo_entry_point_not_exist(exists, isdir, isfile, tempdir, mkdtemp, heck_call):
141147
git_config = {"repo": PUBLIC_GIT_REPO, "branch": PUBLIC_BRANCH, "commit": PUBLIC_COMMIT}
142148
entry_point = "entry_point_that_does_not_exist"
143149
source_dir = "source_dir"
@@ -149,10 +155,11 @@ def test_git_clone_repo_entry_point_not_exist(exists, isdir, isfile, mkdtemp, he
149155

150156
@patch("subprocess.check_call")
151157
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
158+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
152159
@patch("os.path.isfile", return_value=True)
153160
@patch("os.path.isdir", return_value=False)
154161
@patch("os.path.exists", return_value=True)
155-
def test_git_clone_repo_source_dir_not_exist(exists, isdir, isfile, mkdtemp, check_call):
162+
def test_git_clone_repo_source_dir_not_exist(exists, isdir, isfile, tempdir, mkdtemp, check_call):
156163
git_config = {"repo": PUBLIC_GIT_REPO, "branch": PUBLIC_BRANCH, "commit": PUBLIC_COMMIT}
157164
entry_point = "entry_point"
158165
source_dir = "source_dir_that_does_not_exist"
@@ -164,10 +171,11 @@ def test_git_clone_repo_source_dir_not_exist(exists, isdir, isfile, mkdtemp, che
164171

165172
@patch("subprocess.check_call")
166173
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
174+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
167175
@patch("os.path.isfile", return_value=True)
168176
@patch("os.path.isdir", return_value=True)
169177
@patch("os.path.exists", side_effect=[True, False])
170-
def test_git_clone_repo_dependencies_not_exist(exists, isdir, isfile, mkdtemp, check_call):
178+
def test_git_clone_repo_dependencies_not_exist(exists, isdir, isfile, tempdir, mkdtemp, check_call):
171179
git_config = {"repo": PUBLIC_GIT_REPO, "branch": PUBLIC_BRANCH, "commit": PUBLIC_COMMIT}
172180
entry_point = "entry_point"
173181
source_dir = "source_dir"
@@ -179,8 +187,9 @@ def test_git_clone_repo_dependencies_not_exist(exists, isdir, isfile, mkdtemp, c
179187

180188
@patch("subprocess.check_call")
181189
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
190+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
182191
@patch("os.path.isfile", return_value=True)
183-
def test_git_clone_repo_with_username_password_no_2fa(isfile, mkdtemp, check_call):
192+
def test_git_clone_repo_with_username_password_no_2fa(isfile, tempdir, mkdtemp, check_call):
184193
git_config = {
185194
"repo": PRIVATE_GIT_REPO,
186195
"branch": PRIVATE_BRANCH,
@@ -210,8 +219,9 @@ def test_git_clone_repo_with_username_password_no_2fa(isfile, mkdtemp, check_cal
210219

211220
@patch("subprocess.check_call")
212221
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
222+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
213223
@patch("os.path.isfile", return_value=True)
214-
def test_git_clone_repo_with_token_no_2fa(isfile, mkdtemp, check_call):
224+
def test_git_clone_repo_with_token_no_2fa(isfile, tempdir, mkdtemp, check_call):
215225
git_config = {
216226
"repo": PRIVATE_GIT_REPO,
217227
"branch": PRIVATE_BRANCH,
@@ -236,8 +246,9 @@ def test_git_clone_repo_with_token_no_2fa(isfile, mkdtemp, check_call):
236246

237247
@patch("subprocess.check_call")
238248
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
249+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
239250
@patch("os.path.isfile", return_value=True)
240-
def test_git_clone_repo_with_token_2fa(isfile, mkdtemp, check_call):
251+
def test_git_clone_repo_with_token_2fa(isfile, tempdirm, mkdtemp, check_call):
241252
git_config = {
242253
"repo": PRIVATE_GIT_REPO,
243254
"branch": PRIVATE_BRANCH,
@@ -264,8 +275,10 @@ def test_git_clone_repo_with_token_2fa(isfile, mkdtemp, check_call):
264275
@patch("subprocess.check_call")
265276
@patch("os.chmod")
266277
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
278+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
267279
@patch("os.path.isfile", return_value=True)
268-
def test_git_clone_repo_ssh(isfile, mkdtemp, chmod, check_call):
280+
def test_git_clone_repo_ssh(isfile, tempdir, mkdtemp, chmod, check_call):
281+
Path(REPO_DIR).mkdir(parents=True, exist_ok=True)
269282
git_config = {"repo": PRIVATE_GIT_REPO_SSH, "branch": PRIVATE_BRANCH, "commit": PRIVATE_COMMIT}
270283
entry_point = "entry_point"
271284
ret = git_utils.git_clone_repo(git_config, entry_point)
@@ -277,8 +290,9 @@ def test_git_clone_repo_ssh(isfile, mkdtemp, chmod, check_call):
277290

278291
@patch("subprocess.check_call")
279292
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
293+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
280294
@patch("os.path.isfile", return_value=True)
281-
def test_git_clone_repo_with_token_no_2fa_unnecessary_creds_provided(isfile, mkdtemp, check_call):
295+
def test_git_clone_repo_with_token_no_2fa_unnecessary_creds_provided(isfile, tempdir, mkdtemp, check_call):
282296
git_config = {
283297
"repo": PRIVATE_GIT_REPO,
284298
"branch": PRIVATE_BRANCH,
@@ -309,8 +323,9 @@ def test_git_clone_repo_with_token_no_2fa_unnecessary_creds_provided(isfile, mkd
309323

310324
@patch("subprocess.check_call")
311325
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
326+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
312327
@patch("os.path.isfile", return_value=True)
313-
def test_git_clone_repo_with_token_2fa_unnecessary_creds_provided(isfile, mkdtemp, check_call):
328+
def test_git_clone_repo_with_token_2fa_unnecessary_creds_provided(isfile, tempdir, mkdtemp, check_call):
314329
git_config = {
315330
"repo": PRIVATE_GIT_REPO,
316331
"branch": PRIVATE_BRANCH,
@@ -346,7 +361,8 @@ def test_git_clone_repo_with_token_2fa_unnecessary_creds_provided(isfile, mkdtem
346361
),
347362
)
348363
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
349-
def test_git_clone_repo_with_username_and_password_wrong_creds(mkdtemp, check_call):
364+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
365+
def test_git_clone_repo_with_username_and_password_wrong_creds(tempdir, mkdtemp, check_call):
350366
git_config = {
351367
"repo": PRIVATE_GIT_REPO,
352368
"branch": PRIVATE_BRANCH,
@@ -370,7 +386,8 @@ def test_git_clone_repo_with_username_and_password_wrong_creds(mkdtemp, check_ca
370386
),
371387
)
372388
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
373-
def test_git_clone_repo_with_token_wrong_creds(mkdtemp, check_call):
389+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
390+
def test_git_clone_repo_with_token_wrong_creds(tempdir, mkdtemp, check_call):
374391
git_config = {
375392
"repo": PRIVATE_GIT_REPO,
376393
"branch": PRIVATE_BRANCH,
@@ -393,7 +410,8 @@ def test_git_clone_repo_with_token_wrong_creds(mkdtemp, check_call):
393410
),
394411
)
395412
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
396-
def test_git_clone_repo_with_and_token_2fa_wrong_creds(mkdtemp, check_call):
413+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
414+
def test_git_clone_repo_with_and_token_2fa_wrong_creds(tempdir, mkdtemp, check_call):
397415
git_config = {
398416
"repo": PRIVATE_GIT_REPO,
399417
"branch": PRIVATE_BRANCH,
@@ -411,8 +429,9 @@ def test_git_clone_repo_with_and_token_2fa_wrong_creds(mkdtemp, check_call):
411429

412430
@patch("subprocess.check_call")
413431
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
432+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
414433
@patch("os.path.isfile", return_value=True)
415-
def test_git_clone_repo_codecommit_https_with_username_and_password(isfile, mkdtemp, check_call):
434+
def test_git_clone_repo_codecommit_https_with_username_and_password(isfile, tempdir, mkdtemp, check_call):
416435
git_config = {
417436
"repo": CODECOMMIT_REPO,
418437
"branch": CODECOMMIT_BRANCH,
@@ -445,7 +464,9 @@ def test_git_clone_repo_codecommit_https_with_username_and_password(isfile, mkdt
445464
),
446465
)
447466
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
448-
def test_git_clone_repo_codecommit_ssh_passphrase_required(mkdtemp, check_call):
467+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
468+
def test_git_clone_repo_codecommit_ssh_passphrase_required(tempdir, mkdtemp, check_call):
469+
Path(REPO_DIR).mkdir(parents=True, exist_ok=True)
449470
git_config = {"repo": CODECOMMIT_REPO_SSH, "branch": CODECOMMIT_BRANCH}
450471
entry_point = "entry_point"
451472
with pytest.raises(subprocess.CalledProcessError) as error:
@@ -460,7 +481,8 @@ def test_git_clone_repo_codecommit_ssh_passphrase_required(mkdtemp, check_call):
460481
),
461482
)
462483
@patch("tempfile.mkdtemp", return_value=REPO_DIR)
463-
def test_git_clone_repo_codecommit_https_creds_not_stored_locally(mkdtemp, check_call):
484+
@patch("tempfile.TemporaryDirectory.__enter__", return_value=REPO_DIR)
485+
def test_git_clone_repo_codecommit_https_creds_not_stored_locally(tempdir, mkdtemp, check_call):
464486
git_config = {"repo": CODECOMMIT_REPO, "branch": CODECOMMIT_BRANCH}
465487
entry_point = "entry_point"
466488
with pytest.raises(subprocess.CalledProcessError) as error:

0 commit comments

Comments
 (0)