cookiecutter

Форк
0
/
test_abort_generate_on_hook_error.py 
40 строк · 1.2 Кб
1
"""
2
test_abort_generate_on_hook_error.
3

4
Tests to ensure cookiecutter properly exits with a non-zero exit code whenever
5
errors occur in (optional) pre- or pos-gen hooks.
6
"""
7

8
import pytest
9

10
from cookiecutter import exceptions, generate
11

12

13
@pytest.mark.parametrize(
14
    ("abort_pre_gen", "abort_post_gen"),
15
    (("yes", "no"), ("no", "yes")),
16
    ids=("pre_gen_hook_raises_error", "post_gen_hook_raises_error"),
17
)
18
@pytest.mark.usefixtures("clean_system")
19
def test_hooks_raises_errors(tmp_path, abort_pre_gen, abort_post_gen) -> None:
20
    """Verify pre- and pos-gen errors raises correct error code from script.
21

22
    This allows developers to make different error codes in their code,
23
    for different errors.
24
    """
25
    context = {
26
        "cookiecutter": {
27
            "repo_dir": "foobar",
28
            "abort_pre_gen": abort_pre_gen,
29
            "abort_post_gen": abort_post_gen,
30
        }
31
    }
32

33
    with pytest.raises(exceptions.FailedHookException) as error:
34
        generate.generate_files(
35
            repo_dir="tests/hooks-abort-render",
36
            context=context,
37
            output_dir=str(tmp_path),
38
        )
39
        assert error.value.code == 5
40
    assert not tmp_path.joinpath("foobar").is_dir()
41

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.