Skip to content

Commit 4131aee

Browse files
Vladimir Kotalahornace
authored andcommitted
add basic test for ignore_errors
1 parent ea3064a commit 4131aee

File tree

1 file changed

+36
-2
lines changed

1 file changed

+36
-2
lines changed

tools/src/test/python/test_mirror.py

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@
3939
from opengrok_tools.scm.repository import RepositoryException
4040
from opengrok_tools.utils.command import Command
4141
from opengrok_tools.utils.exitvals import (
42-
CONTINUE_EXITVAL, FAILURE_EXITVAL
42+
CONTINUE_EXITVAL, FAILURE_EXITVAL, SUCCESS_EXITVAL
4343
)
4444
from opengrok_tools.utils.mirror import check_project_configuration, \
4545
check_configuration, mirror_project, run_command, get_repos_for_project, \
4646
HOOKS_PROPERTY, PROXY_PROPERTY, IGNORED_REPOS_PROPERTY, \
4747
PROJECTS_PROPERTY, DISABLED_CMD_PROPERTY, DISABLED_PROPERTY, \
4848
CMD_TIMEOUT_PROPERTY, HOOK_TIMEOUT_PROPERTY, DISABLED_REASON_PROPERTY, \
49-
INCOMING_PROPERTY
49+
INCOMING_PROPERTY, IGNORE_ERR_PROPERTY, HOOK_PRE_PROPERTY, HOOKDIR_PROPERTY
5050
from opengrok_tools.utils.patterns import COMMAND_PROPERTY, PROJECT_SUBST
5151

5252

@@ -238,6 +238,40 @@ def test_disabled_command_run():
238238
verify(opengrok_tools.utils.mirror).run_command(ANY, project_name)
239239

240240

241+
def test_ignore_errors(monkeypatch):
242+
"""
243+
Test that per project ignore errors property overrides failed pre hook.
244+
"""
245+
def mock_get_repos(*args, **kwargs):
246+
# Technically this function should return list of Repository objects
247+
# however for this test this is not necessary.
248+
return ['foo']
249+
250+
spy2(opengrok_tools.utils.mirror.process_hook)
251+
project_name = "foo"
252+
hook_dir = "/befelemepeseveze"
253+
hook_name = "nonexistent"
254+
config = {
255+
HOOKDIR_PROPERTY: hook_dir,
256+
PROJECTS_PROPERTY: {
257+
project_name: {IGNORE_ERR_PROPERTY: True,
258+
HOOKS_PROPERTY: {HOOK_PRE_PROPERTY: hook_name}}
259+
}
260+
}
261+
262+
with monkeypatch.context() as m:
263+
mock_get_repos.called = False
264+
m.setattr("opengrok_tools.utils.mirror.get_repos_for_project",
265+
mock_get_repos)
266+
267+
src_root = "srcroot"
268+
assert mirror_project(config, project_name, False,
269+
None, src_root) == SUCCESS_EXITVAL
270+
verify(opengrok_tools.utils.mirror).\
271+
process_hook(HOOK_PRE_PROPERTY, os.path.join(hook_dir, hook_name),
272+
src_root, project_name, None, None)
273+
274+
241275
def test_disabled_command_run_args():
242276
"""
243277
Make sure that run_command() calls Command.execute().

0 commit comments

Comments
 (0)