Skip to content

Commit ce34aae

Browse files
committed
make hooks tests aware of crash hook
1 parent 0b7f351 commit ce34aae

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

test/framework/hooks.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ def setUp(self):
7979
'',
8080
'def fail_hook(err):',
8181
' print("EasyBuild FAIL: %s" % err)',
82+
'',
83+
'def crash_hook(err):',
84+
' print("EasyBuild CRASHED, oh no! => %s" % err)',
8285
])
8386
write_file(self.test_hooks_pymod, test_hooks_pymod_txt)
8487

@@ -97,8 +100,9 @@ def test_load_hooks(self):
97100

98101
hooks = load_hooks(self.test_hooks_pymod)
99102

100-
self.assertEqual(len(hooks), 8)
103+
self.assertEqual(len(hooks), 9)
101104
expected = [
105+
'crash_hook',
102106
'fail_hook',
103107
'parse_hook',
104108
'post_configure_hook',
@@ -140,6 +144,7 @@ def test_find_hook(self):
140144
pre_single_extension_hook = [hooks[k] for k in hooks if k == 'pre_single_extension_hook'][0]
141145
start_hook = [hooks[k] for k in hooks if k == 'start_hook'][0]
142146
pre_run_shell_cmd_hook = [hooks[k] for k in hooks if k == 'pre_run_shell_cmd_hook'][0]
147+
crash_hook = [hooks[k] for k in hooks if k == 'crash_hook'][0]
143148
fail_hook = [hooks[k] for k in hooks if k == 'fail_hook'][0]
144149
pre_build_and_install_loop_hook = [hooks[k] for k in hooks if k == 'pre_build_and_install_loop_hook'][0]
145150

@@ -175,6 +180,10 @@ def test_find_hook(self):
175180
self.assertEqual(find_hook('fail', hooks, pre_step_hook=True), None)
176181
self.assertEqual(find_hook('fail', hooks, post_step_hook=True), None)
177182

183+
self.assertEqual(find_hook('crash', hooks), crash_hook)
184+
self.assertEqual(find_hook('crash', hooks, pre_step_hook=True), None)
185+
self.assertEqual(find_hook('crash', hooks, post_step_hook=True), None)
186+
178187
hook_name = 'build_and_install_loop'
179188
self.assertEqual(find_hook(hook_name, hooks), None)
180189
self.assertEqual(find_hook(hook_name, hooks, pre_step_hook=True), pre_build_and_install_loop_hook)
@@ -209,6 +218,7 @@ def run_hooks():
209218
run_hook('single_extension', hooks, post_step_hook=True, args=[None])
210219
run_hook('extensions', hooks, post_step_hook=True, args=[None])
211220
run_hook('fail', hooks, args=[EasyBuildError('oops')])
221+
run_hook('crash', hooks, args=[RuntimeError('boom!')])
212222
stdout = self.get_stdout()
213223
stderr = self.get_stderr()
214224
self.mock_stdout(False)
@@ -244,6 +254,8 @@ def run_hooks():
244254
"this is run before installing an extension",
245255
"== Running fail hook...",
246256
"EasyBuild FAIL: 'oops'",
257+
"== Running crash hook...",
258+
"EasyBuild CRASHED, oh no! => boom!",
247259
]
248260
expected_stdout = '\n'.join(expected_stdout_lines)
249261

0 commit comments

Comments
 (0)