| @@ 62-90 (lines=29) @@ | ||
| 59 | ) |
|
| 60 | ||
| 61 | ||
| 62 | def test_clone_should_abort_if_user_does_not_want_to_reclone(mocker, tmpdir): |
|
| 63 | """In `clone()`, if user doesn't want to reclone, Cookiecutter should exit |
|
| 64 | without cloning anything. |
|
| 65 | """ |
|
| 66 | mocker.patch( |
|
| 67 | 'cookiecutter.vcs.is_vcs_installed', |
|
| 68 | autospec=True, |
|
| 69 | return_value=True |
|
| 70 | ) |
|
| 71 | mocker.patch( |
|
| 72 | 'cookiecutter.vcs.prompt_and_delete', |
|
| 73 | side_effect=SystemExit, |
|
| 74 | autospec=True |
|
| 75 | ) |
|
| 76 | mock_subprocess = mocker.patch( |
|
| 77 | 'cookiecutter.vcs.subprocess.check_output', |
|
| 78 | autospec=True, |
|
| 79 | ) |
|
| 80 | ||
| 81 | clone_to_dir = tmpdir.mkdir('clone') |
|
| 82 | ||
| 83 | # Create repo_dir to trigger prompt_and_delete |
|
| 84 | clone_to_dir.mkdir('cookiecutter-pytest-plugin') |
|
| 85 | ||
| 86 | repo_url = 'https://github.com/pytest-dev/cookiecutter-pytest-plugin.git' |
|
| 87 | ||
| 88 | with pytest.raises(SystemExit): |
|
| 89 | vcs.clone(repo_url, clone_to_dir=str(clone_to_dir)) |
|
| 90 | assert not mock_subprocess.called |
|
| 91 | ||
| 92 | ||
| 93 | @pytest.mark.parametrize('repo_type, repo_url, repo_name', [ |
|
| @@ 299-325 (lines=27) @@ | ||
| 296 | assert output_dir.startswith(tempfile.gettempdir()) |
|
| 297 | ||
| 298 | ||
| 299 | def test_unzip_should_abort_if_no_redownload(mocker, tmpdir): |
|
| 300 | """In `unzip()`, if user doesn't want to download, Cookiecutter should exit |
|
| 301 | without cloning anything. |
|
| 302 | """ |
|
| 303 | mocker.patch( |
|
| 304 | 'cookiecutter.zipfile.prompt_and_delete', |
|
| 305 | side_effect=SystemExit, |
|
| 306 | autospec=True |
|
| 307 | ) |
|
| 308 | ||
| 309 | mock_requests_get = mocker.patch( |
|
| 310 | 'cookiecutter.zipfile.requests.get', |
|
| 311 | autospec=True, |
|
| 312 | ) |
|
| 313 | ||
| 314 | clone_to_dir = tmpdir.mkdir('clone') |
|
| 315 | ||
| 316 | # Create an existing cache of the zipfile |
|
| 317 | existing_zip = clone_to_dir.join('fake-repo-tmpl.zip') |
|
| 318 | existing_zip.write('This is an existing zipfile') |
|
| 319 | ||
| 320 | zipfile_url = 'https://example.com/path/to/fake-repo-tmpl.zip' |
|
| 321 | ||
| 322 | with pytest.raises(SystemExit): |
|
| 323 | zipfile.unzip(zipfile_url, is_url=True, clone_to_dir=str(clone_to_dir)) |
|
| 324 | ||
| 325 | assert not mock_requests_get.called |
|
| 326 | ||