|
39 | 39 | from opengrok_tools.scm.repository import RepositoryException
|
40 | 40 | from opengrok_tools.utils.command import Command
|
41 | 41 | from opengrok_tools.utils.exitvals import (
|
42 |
| - CONTINUE_EXITVAL, FAILURE_EXITVAL |
| 42 | + CONTINUE_EXITVAL, FAILURE_EXITVAL, SUCCESS_EXITVAL |
43 | 43 | )
|
44 | 44 | from opengrok_tools.utils.mirror import check_project_configuration, \
|
45 | 45 | check_configuration, mirror_project, run_command, get_repos_for_project, \
|
46 | 46 | HOOKS_PROPERTY, PROXY_PROPERTY, IGNORED_REPOS_PROPERTY, \
|
47 | 47 | PROJECTS_PROPERTY, DISABLED_CMD_PROPERTY, DISABLED_PROPERTY, \
|
48 | 48 | CMD_TIMEOUT_PROPERTY, HOOK_TIMEOUT_PROPERTY, DISABLED_REASON_PROPERTY, \
|
49 |
| - INCOMING_PROPERTY |
| 49 | + INCOMING_PROPERTY, IGNORE_ERR_PROPERTY, HOOK_PRE_PROPERTY, HOOKDIR_PROPERTY |
50 | 50 | from opengrok_tools.utils.patterns import COMMAND_PROPERTY, PROJECT_SUBST
|
51 | 51 |
|
52 | 52 |
|
@@ -238,6 +238,40 @@ def test_disabled_command_run():
|
238 | 238 | verify(opengrok_tools.utils.mirror).run_command(ANY, project_name)
|
239 | 239 |
|
240 | 240 |
|
| 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 | + |
241 | 275 | def test_disabled_command_run_args():
|
242 | 276 | """
|
243 | 277 | Make sure that run_command() calls Command.execute().
|
|
0 commit comments