Skip to content

Commit d78e638

Browse files
committed
Dev: unittests: Adjust unit test for previous commit
1 parent 1d9d2f2 commit d78e638

File tree

3 files changed

+36
-120
lines changed

3 files changed

+36
-120
lines changed

test/unittests/test_bootstrap.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1539,12 +1539,15 @@ def test_adjust_pcmk_delay(self, mock_cib_inst, mock_run, mock_debug):
15391539
bootstrap.adjust_pcmk_delay_max(False)
15401540
mock_run.assert_called_once_with("crm resource param res_1 delete pcmk_delay_max")
15411541

1542-
@mock.patch('crmsh.sbd.SBDTimeout.adjust_sbd_timeout_related_cluster_configuration')
1542+
@mock.patch('crmsh.sbd.SBDTimeoutChecker')
15431543
@mock.patch('crmsh.service_manager.ServiceManager.service_is_active')
1544-
def test_adjust_stonith_timeout_sbd(self, mock_is_active, mock_sbd_adjust_timeout):
1544+
def test_adjust_stonith_timeout_sbd(self, mock_is_active, mock_sbd_checker):
1545+
mock_sbd_checker_inst = mock.Mock()
1546+
mock_sbd_checker.return_value = mock_sbd_checker_inst
1547+
mock_sbd_checker_inst.check_and_fix = mock.Mock()
15451548
mock_is_active.return_value = True
15461549
bootstrap.adjust_stonith_timeout()
1547-
mock_sbd_adjust_timeout.assert_called_once_with()
1550+
mock_sbd_checker.assert_called_once_with(fix=True, warn=False, from_bootstrap=True)
15481551

15491552
@mock.patch('crmsh.utils.set_property')
15501553
@mock.patch('crmsh.bootstrap.get_stonith_timeout_generally_expected')

test/unittests/test_sbd.py

Lines changed: 2 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,6 @@ def test_get_sbd_device_metadata_success(self, mock_cluster_shell):
2222
expected = {'uuid': '1234-5678', 'watchdog': 5, 'msgwait': 10}
2323
self.assertEqual(result, expected)
2424

25-
@patch('crmsh.sh.cluster_shell')
26-
def test_get_sbd_device_metadata_exception(self, mock_cluster_shell):
27-
mock_cluster_shell.return_value.get_stdout_or_raise_error.side_effect = Exception
28-
result = SBDUtils.get_sbd_device_metadata("/dev/sbd_device")
29-
self.assertEqual(result, {})
30-
3125
@patch('crmsh.sh.cluster_shell')
3226
def test_get_sbd_device_metadata_timeout_only(self, mock_cluster_shell):
3327
mock_cluster_shell.return_value.get_stdout_or_raise_error.return_value = self.TEST_DATA
@@ -186,19 +180,6 @@ class TestSBDTimeout(unittest.TestCase):
186180
"""
187181
Unitary tests for crmsh.sbd.SBDTimeout
188182
"""
189-
@patch('crmsh.sbd.SBDUtils.get_sbd_device_metadata')
190-
def test_get_sbd_msgwait_exception(self, mock_get_sbd_device_metadata):
191-
mock_get_sbd_device_metadata.return_value = {}
192-
with self.assertRaises(ValueError) as context:
193-
sbd.SBDTimeout.get_sbd_msgwait("/dev/sbd_device")
194-
self.assertTrue("Cannot get sbd msgwait for /dev/sbd_device" in str(context.exception))
195-
196-
@patch('crmsh.sbd.SBDUtils.get_sbd_device_metadata')
197-
def test_get_sbd_msgwait(self, mock_get_sbd_device_metadata):
198-
mock_get_sbd_device_metadata.return_value = {'msgwait': 10}
199-
result = sbd.SBDTimeout.get_sbd_msgwait("/dev/sbd_device")
200-
self.assertEqual(result, 10)
201-
202183
@patch('crmsh.sbd.SBDUtils.get_sbd_value_from_config')
203184
def test_get_sbd_watchdog_timeout_exception(self, mock_get_sbd_value_from_config):
204185
mock_get_sbd_value_from_config.return_value = None
@@ -246,103 +227,12 @@ def test_get_sbd_systemd_start_timeout(self, mock_cluster_shell, mock_get_system
246227
mock_cluster_shell.return_value.get_stdout_or_raise_error.assert_called_once_with(sbd.SBDTimeout.SHOW_SBD_START_TIMEOUT_CMD)
247228
mock_get_systemd_timeout_start_in_sec.assert_called_once_with("1min 30s")
248229

249-
@patch('crmsh.sbd.SBDTimeout.adjust_systemd_start_timeout')
250-
@patch('crmsh.sbd.SBDTimeout.adjust_stonith_timeout')
251-
@patch('crmsh.sbd.SBDTimeout.adjust_sbd_delay_start')
252-
@patch('crmsh.sbd.SBDTimeout._load_configurations')
253-
def test_adjust_sbd_timeout_related_cluster_configuration(self, mock_load_configurations, mock_adjust_sbd_delay_start, mock_adjust_stonith_timeout,
254-
mock_adjust_systemd_start_timeout):
255-
sbd.SBDTimeout.adjust_sbd_timeout_related_cluster_configuration()
256-
mock_load_configurations.assert_called_once()
257-
mock_adjust_sbd_delay_start.assert_called_once()
258-
mock_adjust_stonith_timeout.assert_called_once()
259-
mock_adjust_systemd_start_timeout.assert_called_once()
260-
261-
@patch('crmsh.sbd.SBDManager.update_sbd_configuration')
262-
def test_adjust_sbd_delay_start_return(self, mock_update_sbd_configuration):
263-
inst = sbd.SBDTimeout()
264-
inst.sbd_delay_start_value_expected = 100
265-
inst.sbd_delay_start_value_from_config = "100"
266-
inst.adjust_sbd_delay_start()
267-
mock_update_sbd_configuration.assert_not_called()
268-
269-
@patch('crmsh.sbd.SBDManager.update_sbd_configuration')
270-
def test_adjust_sbd_delay_start(self, mock_update_sbd_configuration):
271-
inst = sbd.SBDTimeout()
272-
inst.sbd_delay_start_value_expected = "no"
273-
inst.sbd_delay_start_value_from_config = 200
274-
inst.adjust_sbd_delay_start()
275-
mock_update_sbd_configuration.assert_called_once_with({'SBD_DELAY_START': 'no'})
276-
277-
@patch('crmsh.utils.set_property')
278-
def test_adjust_stonith_timeout(self, mock_set_property):
279-
inst = sbd.SBDTimeout()
280-
inst.get_stonith_timeout_expected = MagicMock(return_value=10)
281-
inst.adjust_stonith_timeout()
282-
mock_set_property.assert_called_once_with("stonith-timeout", 10)
283-
284-
@patch('crmsh.sbd.SBDTimeout.restore_systemd_start_timeout')
285-
@patch('crmsh.sbd.SBDTimeout.get_sbd_systemd_start_timeout')
286-
@patch('crmsh.sbd.SBDUtils.get_sbd_value_from_config')
287-
def test_adjust_systemd_start_timeout_no_delay_start(self, mock_get_sbd_value_from_config, mock_get_sbd_systemd_start_timeout, mock_restore_systemd_start_timeout):
288-
mock_get_sbd_value_from_config.return_value = "no"
289-
inst = sbd.SBDTimeout()
290-
inst.adjust_systemd_start_timeout()
291-
mock_get_sbd_value_from_config.assert_called_once_with("SBD_DELAY_START")
292-
mock_get_sbd_systemd_start_timeout.assert_not_called()
293-
294-
@patch('crmsh.sbd.SBDTimeout.restore_systemd_start_timeout')
295-
@patch('crmsh.sbd.SBDTimeout.get_default_systemd_start_timeout')
296-
@patch('crmsh.sbd.SBDTimeout.get_sbd_systemd_start_timeout')
297-
@patch('crmsh.sbd.SBDUtils.get_sbd_value_from_config')
298-
def test_adjust_systemd_start_timeout_return(
299-
self,
300-
mock_get_sbd_value_from_config,
301-
mock_get_sbd_systemd_start_timeout,
302-
mock_get_default_systemd_start_timeout,
303-
mock_restore_systemd_start_timeout,
304-
):
305-
mock_get_sbd_value_from_config.return_value = "10"
306-
mock_get_sbd_systemd_start_timeout.return_value = 90
307-
mock_get_default_systemd_start_timeout.return_value = 90
308-
inst = sbd.SBDTimeout()
309-
inst.adjust_systemd_start_timeout()
310-
mock_get_sbd_value_from_config.assert_called_once_with("SBD_DELAY_START")
311-
mock_get_sbd_systemd_start_timeout.assert_called_once()
312-
313-
@patch('crmsh.utils.cluster_run_cmd')
314-
@patch('crmsh.bootstrap.sync_path')
315-
@patch('crmsh.utils.str2file')
316-
@patch('crmsh.utils.mkdirp')
317-
@patch('crmsh.sbd.SBDTimeout.get_default_systemd_start_timeout')
318-
@patch('crmsh.sbd.SBDTimeout.get_sbd_systemd_start_timeout')
319-
@patch('crmsh.sbd.SBDUtils.get_sbd_value_from_config')
320-
def test_adjust_systemd_start_timeout(
321-
self,
322-
mock_get_sbd_value_from_config,
323-
mock_get_sbd_systemd_start_timeout,
324-
mock_get_default_systemd_start_timeout,
325-
mock_mkdirp,
326-
mock_str2file,
327-
mock_sync_file,
328-
mock_cluster_run_cmd,
329-
):
330-
mock_get_sbd_value_from_config.return_value = "150"
331-
mock_get_sbd_systemd_start_timeout.return_value = 90
332-
mock_get_default_systemd_start_timeout.return_value = 90
333-
inst = sbd.SBDTimeout()
334-
inst.adjust_systemd_start_timeout()
335-
mock_get_sbd_value_from_config.assert_called_once_with("SBD_DELAY_START")
336-
mock_get_sbd_systemd_start_timeout.assert_called_once()
337-
mock_mkdirp.assert_called_once_with(sbd.SBDManager.SBD_SYSTEMD_DELAY_START_DIR)
338-
mock_cluster_run_cmd.assert_called_once_with("systemctl daemon-reload")
339-
340230
@patch('crmsh.corosync.token_and_consensus_timeout')
341231
def test_get_sbd_delay_start_expected_diskbased(self, mock_token_and_consensus_timeout):
342232
inst = sbd.SBDTimeout()
343233
inst.disk_based = True
344234
inst.pcmk_delay_max = 10
345-
inst.msgwait = 5
235+
inst.sbd_msgwait = 5
346236
mock_token_and_consensus_timeout.return_value = 10
347237
self.assertEqual(inst.get_sbd_delay_start_expected(), 25)
348238

@@ -368,7 +258,7 @@ def test_get_stonith_timeout(self, mock_load_configurations, mock_get_sbd_delay_
368258
def test_get_stonith_timeout_expected_diskbased(self, mock_token_and_consensus_timeout, mock_logger_debug):
369259
inst = sbd.SBDTimeout()
370260
inst.disk_based = True
371-
inst.msgwait = 5
261+
inst.sbd_msgwait = 5
372262
mock_token_and_consensus_timeout.return_value = 10
373263
result = inst.get_stonith_timeout_expected()
374264
self.assertEqual(result, 70)

test/unittests/test_ui_sbd.py

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -239,20 +239,38 @@ def test_configure_show_unknown_arg(self):
239239
res = self.sbd_instance_diskbased._configure_show(["xxx1", "xxx2"])
240240
self.assertEqual(str(e.exception), f"Unknown argument: xxx2")
241241

242-
def test_configure_show_disk_metadata(self):
242+
@mock.patch('crmsh.sbd.SBDTimeoutChecker')
243+
def test_configure_show_disk_metadata(self, mock_sbd_timeout_checker):
244+
mock_sbd_timeout_checker_instance = mock.Mock()
245+
mock_sbd_timeout_checker.return_value = mock_sbd_timeout_checker_instance
246+
mock_sbd_timeout_checker_instance.check_and_fix = mock.Mock()
243247
self.sbd_instance_diskbased._show_disk_metadata = mock.Mock()
244248
self.sbd_instance_diskbased._configure_show(["show", "disk_metadata"])
245249
self.sbd_instance_diskbased._show_disk_metadata.assert_called_once()
250+
mock_sbd_timeout_checker.assert_called_once_with(check_category="disk_metadata")
251+
mock_sbd_timeout_checker_instance.check_and_fix.assert_called_once()
246252

253+
@mock.patch('crmsh.sbd.SBDTimeoutChecker')
247254
@mock.patch('crmsh.ui_sbd.SBD._show_sysconfig')
248-
def test_configure_show_sysconfig(self, mock_show_sysconfig):
255+
def test_configure_show_sysconfig(self, mock_show_sysconfig, mock_sbd_timeout_checker):
256+
mock_sbd_timeout_checker_instance = mock.Mock()
257+
mock_sbd_timeout_checker.return_value = mock_sbd_timeout_checker_instance
258+
mock_sbd_timeout_checker_instance.check_and_fix = mock.Mock()
249259
self.sbd_instance_diskbased._configure_show(["show", "sysconfig"])
250260
mock_show_sysconfig.assert_called_once()
251-
252-
def test_configure_show_property(self):
261+
mock_sbd_timeout_checker.assert_called_once_with(check_category="sysconfig")
262+
mock_sbd_timeout_checker_instance.check_and_fix.assert_called_once()
263+
264+
@mock.patch('crmsh.sbd.SBDTimeoutChecker')
265+
def test_configure_show_property(self, mock_sbd_timeout_checker):
266+
mock_sbd_timeout_checker_instance = mock.Mock()
267+
mock_sbd_timeout_checker.return_value = mock_sbd_timeout_checker_instance
268+
mock_sbd_timeout_checker_instance.check_and_fix = mock.Mock()
253269
self.sbd_instance_diskbased._show_property = mock.Mock()
254270
self.sbd_instance_diskbased._configure_show(["show", "property"])
255271
self.sbd_instance_diskbased._show_property.assert_called_once()
272+
mock_sbd_timeout_checker.assert_called_once_with(check_category="property")
273+
mock_sbd_timeout_checker_instance.check_and_fix.assert_called_once()
256274

257275
def test_parse_re(self):
258276
test_data = [
@@ -267,13 +285,18 @@ def test_parse_re(self):
267285
self.assertIsNotNone(match)
268286
self.assertEqual(match.groups(), expected)
269287

288+
@mock.patch('crmsh.sbd.SBDTimeoutChecker')
270289
@mock.patch('crmsh.ui_sbd.SBD._show_sysconfig')
271290
@mock.patch('builtins.print')
272-
def test_configure_show(self, mock_print, mock_show_sysconfig):
291+
def test_configure_show(self, mock_print, mock_show_sysconfig, mock_sbd_timeout_checker):
292+
mock_sbd_timeout_checker_instance = mock.Mock()
293+
mock_sbd_timeout_checker.return_value = mock_sbd_timeout_checker_instance
294+
mock_sbd_timeout_checker_instance.check_and_fix = mock.Mock()
273295
self.sbd_instance_diskbased._show_disk_metadata = mock.Mock()
274296
self.sbd_instance_diskbased._show_property = mock.Mock()
275297
self.sbd_instance_diskbased._configure_show(["show"])
276298
mock_print.assert_has_calls([mock.call(), mock.call()])
299+
mock_sbd_timeout_checker_instance.check_and_fix.assert_called_once()
277300

278301
def test_parse_args_invalid_args(self):
279302
with self.assertRaises(ui_sbd.SBD.SyntaxError) as e:

0 commit comments

Comments
 (0)