Skip to content

Commit b60df86

Browse files
author
Drew Freiberger
committed
Add unit tests for openvswitch nrpe check helpers
1 parent 169e5e5 commit b60df86

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

tests/contrib/charmsupport/test_nrpe.py

+45
Original file line numberDiff line numberDiff line change
@@ -494,3 +494,48 @@ def test_copy_nrpe_checks_nrpe_files_dir(self):
494494
self.patched['copy2'].assert_called_once_with(
495495
'filea',
496496
'/usr/local/lib/nagios/plugins/filea')
497+
498+
def test_enable_sudo_for_openvswitch_checks(self):
499+
error_msg = 'test failure'
500+
nrpe.enable_sudo_for_openvswitch_checks()
501+
502+
self.patched['open'].side_effect = IOError(error_msg)
503+
nrpe.enable_sudo_for_openvswitch_checks()
504+
self.patched['open'].side_effect = None
505+
506+
self.patched['chmod'].side_effect = OSError(error_msg)
507+
nrpe.enable_sudo_for_openvswitch_checks()
508+
self.patched['chmod'].side_effect = None
509+
510+
self.patched['chown'].side_effect = OSError(error_msg)
511+
nrpe.enable_sudo_for_openvswitch_checks()
512+
self.patched['chown'].side_effect = None
513+
514+
expected_path = '/etc/sudoers.d/99-check_openvswitch'
515+
expected_success_log = ("Sudoers file for check_openvswitch "
516+
"installed: {}".format(expected_path))
517+
expected_failure_log = ("Failed to setup sudoers file for "
518+
"check_openvswitch: {}".format(error_msg))
519+
self.patched['open'].assert_has_calls(
520+
[call(expected_path, 'w')], any_order=True)
521+
self.patched['chmod'].assert_has_calls(
522+
[call(expected_path, 0o100440)], any_order=True)
523+
self.patched['chown'].assert_has_calls(
524+
[call(expected_path, uid=0, gid=0)], any_order=True)
525+
self.patched['log'].assert_has_calls(
526+
[call(expected_success_log, nrpe.DEBUG),
527+
call(expected_failure_log),
528+
call(expected_failure_log),
529+
call(expected_failure_log)])
530+
self.check_call_counts(log=4, open=4, chmod=3, chown=2)
531+
532+
@patch.object(nrpe, 'enable_sudo_for_openvswitch_checks')
533+
@patch.object(nrpe.NRPE, 'add_check')
534+
def test_add_openvswitch_checks(self, mock_nrpe_add_check, mock_enable_sudo):
535+
foo = nrpe.NRPE()
536+
nrpe.add_openvswitch_checks(foo, 'testunit')
537+
mock_enable_sudo.assert_called_once()
538+
mock_nrpe_add_check.assert_called_once_with(
539+
shortname='openvswitch',
540+
description='Check Open vSwitch {testunit}',
541+
check_cmd='check_openvswitch.py')

0 commit comments

Comments
 (0)