42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
import os
|
|
from unittest.mock import call
|
|
|
|
import pytest
|
|
from pytest_mock import MockFixture
|
|
|
|
from commitizen import cmd, hooks
|
|
from commitizen.exceptions import RunHookError
|
|
|
|
|
|
def test_run(mocker: MockFixture):
|
|
bump_hooks = ["pre_bump_hook", "pre_bump_hook_1"]
|
|
|
|
cmd_run_mock = mocker.Mock()
|
|
cmd_run_mock.return_value.return_code = 0
|
|
mocker.patch.object(cmd, "run", cmd_run_mock)
|
|
|
|
hooks.run(bump_hooks)
|
|
|
|
cmd_run_mock.assert_has_calls(
|
|
[
|
|
call("pre_bump_hook", env=dict(os.environ)),
|
|
call("pre_bump_hook_1", env=dict(os.environ)),
|
|
]
|
|
)
|
|
|
|
|
|
def test_run_error(mocker: MockFixture):
|
|
bump_hooks = ["pre_bump_hook", "pre_bump_hook_1"]
|
|
|
|
cmd_run_mock = mocker.Mock()
|
|
cmd_run_mock.return_value.return_code = 1
|
|
mocker.patch.object(cmd, "run", cmd_run_mock)
|
|
|
|
with pytest.raises(RunHookError):
|
|
hooks.run(bump_hooks)
|
|
|
|
|
|
def test_format_env():
|
|
result = hooks._format_env("TEST_", {"foo": "bar", "bar": "baz"})
|
|
assert "TEST_FOO" in result and result["TEST_FOO"] == "bar"
|
|
assert "TEST_BAR" in result and result["TEST_BAR"] == "baz"
|