def test_check__warning__exited(mocker): """ Test "check" method must return human readable statuses and exit code (warning case) (exited state). :param mocker: mock :type mocker: MockerFixture """ expected = ( "WARNING: something curiously with 'example-warning': (EXITED), 'example': OK" ) data = [ { "description": "pid 666, uptime 0 days, 0:00:00", "pid": 666, "stderr_logfile": "", "stop": 0, "logfile": "/var/log/example.log", "exitstatus": 0, "spawnerr": "", "now": 0, "group": "example", "name": "example", "statename": "RUNNING", "start": 0, "state": 20, "stdout_logfile": "/var/log/example.log", }, { "description": "pid 666, uptime 0 days, 0:00:00", "pid": 666, "stderr_logfile": "", "stop": 0, "logfile": "/var/log/example.log", "exitstatus": 0, "spawnerr": "", "now": 0, "group": "example-warning", "name": "example-warning", "statename": "EXITED", "start": 0, "state": 100, "stdout_logfile": "/var/log/example.log", }, ] mocker.patch("sys.argv", ["check_supervisord.py", "-s", "127.0.0.1", "-p", "9001"]) mocker.patch( "{name}._Method.__call__".format(**{"name": xmlrpclib.__name__}), return_value=data, ) checker = CheckSupervisord() result, code = checker.check() assert result.strip() == expected # nosec: B101 assert code == 1 # nosec: B101
def test_check__unknown(mocker): """ Test "check" method must return human readable statuses and exit code (unknown case). :param mocker: mock :type mocker: MockerFixture """ expected = "UNKNOWN: 'example-unknown' not found in server response, 'example': OK" data = [ { "description": "pid 666, uptime 0 days, 0:00:00", "pid": 666, "stderr_logfile": "", "stop": 0, "logfile": "/var/log/example.log", "exitstatus": 0, "spawnerr": "", "now": 0, "group": "example", "name": "example", "statename": "RUNNING", "start": 0, "state": 20, "stdout_logfile": "/var/log/example.log", }, { "description": "pid 666, uptime 0 days, 0:00:00", "pid": 666, "stderr_logfile": "", "stop": 0, "logfile": "/var/log/example.log", "exitstatus": 0, "spawnerr": "", "now": 0, "group": "example-unknown", "name": "example-unknown", "statename": "UNKNOWN", "start": 0, "state": 1000, "stdout_logfile": "/var/log/example.log", }, ] mocker.patch("sys.argv", ["check_supervisord.py", "-s", "127.0.0.1", "-p", "9001"]) mocker.patch( "{name}._Method.__call__".format(**{"name": xmlrpclib.__name__}), return_value=data, ) checker = CheckSupervisord() result, code = checker.check() assert result.strip() == expected # nosec: B101 assert code == 3 # nosec: B101
def test_check__unknown__no_data(mocker): """ Test "check" method must return human readable statuses and exit code (unknown case) (no data). :param mocker: mock :type mocker: MockerFixture """ expected = "UNKNOWN: No program configured/found" data = [] mocker.patch("sys.argv", ["check_supervisord.py", "-s", "127.0.0.1", "-p", "9001"]) mocker.patch( "{name}._Method.__call__".format(**{"name": xmlrpclib.__name__}), return_value=data, ) checker = CheckSupervisord() result, code = checker.check() assert result.strip() == expected # nosec: B101 assert code == 3 # nosec: B101