def test_error_cleanup(self): expected_stdout = "some info" expected_stderr = "some error" expected_retval = 1 mock_runner = mock.MagicMock(spec_set=CommandRunner) call_list = [ mock.call(self.crm_mon_cmd()), mock.call([self.path("crm_resource"), "--cleanup"]), ] return_value_list = [ (self.fixture_status_xml(1, 1), "", 0), (expected_stdout, expected_stderr, expected_retval), ] mock_runner.run.side_effect = return_value_list assert_raise_library_error( lambda: lib.resource_cleanup(mock_runner), ( Severity.ERROR, report_codes.RESOURCE_CLEANUP_ERROR, { "reason": expected_stderr + "\n" + expected_stdout, } ) ) self.assertEqual(len(return_value_list), len(call_list)) self.assertEqual(len(return_value_list), mock_runner.run.call_count) mock_runner.run.assert_has_calls(call_list)
def test_basic(self): self.config.runner.pcmk.resource_cleanup( stdout=self.stdout, stderr=self.stderr ) env = self.env_assist.get_env() real_output = lib.resource_cleanup(env.cmd_runner()) self.assert_output(real_output)
def test_forced(self): expected_stdout = "expected output" expected_stderr = "expected stderr" mock_runner = get_runner(expected_stdout, expected_stderr, 0) real_output = lib.resource_cleanup(mock_runner, force=True) mock_runner.run.assert_called_once_with( [self.path("crm_resource"), "--cleanup"]) self.assertEqual(expected_stdout + "\n" + expected_stderr, real_output)
def test_threshold_exceeded(self): mock_runner = get_runner(self.fixture_status_xml(1000, 1000), "", 0) assert_raise_library_error( lambda: lib.resource_cleanup(mock_runner), (Severity.ERROR, report_codes.RESOURCE_CLEANUP_TOO_TIME_CONSUMING, { "threshold": 100 }, report_codes.FORCE_LOAD_THRESHOLD)) mock_runner.run.assert_called_once_with(self.crm_mon_cmd())
def test_node(self): node = "test_node" expected_stdout = "expected output" expected_stderr = "expected stderr" mock_runner = get_runner(expected_stdout, expected_stderr, 0) real_output = lib.resource_cleanup(mock_runner, node=node) mock_runner.run.assert_called_once_with( [self.path("crm_resource"), "--cleanup", "--node", node]) self.assertEqual(expected_stdout + "\n" + expected_stderr, real_output)
def test_forced(self): expected_stdout = "expected output" expected_stderr = "expected stderr" mock_runner = mock.MagicMock(spec_set=CommandRunner) mock_runner.run.return_value = (expected_stdout, expected_stderr, 0) real_output = lib.resource_cleanup(mock_runner, force=True) mock_runner.run.assert_called_once_with( [self.path("crm_resource"), "--cleanup"]) self.assertEqual(expected_stdout + "\n" + expected_stderr, real_output)
def test_all_options(self): self.config.runner.pcmk.resource_cleanup(stdout=self.stdout, stderr=self.stderr, resource=self.resource, node=self.node) env = self.env_assist.get_env() real_output = lib.resource_cleanup(env.cmd_runner(), resource=self.resource, node=self.node) self.assert_output(real_output)
def test_resource_strict(self): self.config.runner.pcmk.resource_cleanup( stdout=self.stdout, stderr=self.stderr, resource=self.resource, strict=True, ) env = self.env_assist.get_env() real_output = lib.resource_cleanup(env.cmd_runner(), resource=self.resource, strict=True) self.assert_output(real_output)
def test_error_cleanup(self): self.config.runner.pcmk.resource_cleanup(stdout=self.stdout, stderr=self.stderr, returncode=1) env = self.env_assist.get_env() self.env_assist.assert_raise_library_error( lambda: lib.resource_cleanup(env.cmd_runner()), [ fixture.error(report_codes.RESOURCE_CLEANUP_ERROR, force_code=None, reason=(self.stderr + "\n" + self.stdout)) ], expected_in_processor=False)
def test_all_options(self): self.config.runner.pcmk.resource_cleanup( stdout=self.stdout, stderr=self.stderr, resource=self.resource, node=self.node ) env = self.env_assist.get_env() real_output = lib.resource_cleanup( env.cmd_runner(), resource=self.resource, node=self.node ) self.assert_output(real_output)
def test_error_state(self): expected_stdout = "some info" expected_stderr = "some error" expected_retval = 1 mock_runner = get_runner(expected_stdout, expected_stderr, expected_retval) assert_raise_library_error( lambda: lib.resource_cleanup(mock_runner), (Severity.ERROR, report_codes.CRM_MON_ERROR, { "reason": expected_stderr + "\n" + expected_stdout, })) mock_runner.run.assert_called_once_with(self.crm_mon_cmd())
def test_forced(self): expected_stdout = "expected output" expected_stderr = "expected stderr" mock_runner = mock.MagicMock(spec_set=CommandRunner) mock_runner.run.return_value = (expected_stdout, expected_stderr, 0) real_output = lib.resource_cleanup(mock_runner, force=True) mock_runner.run.assert_called_once_with( [self.path("crm_resource"), "--cleanup"] ) self.assertEqual( expected_stdout + "\n" + expected_stderr, real_output )
def test_node_and_resource(self): node = "test_node" resource = "test_resource" expected_stdout = "expected output" expected_stderr = "expected stderr" mock_runner = mock.MagicMock(spec_set=CommandRunner) mock_runner.run.return_value = (expected_stdout, expected_stderr, 0) real_output = lib.resource_cleanup(mock_runner, resource=resource, node=node) mock_runner.run.assert_called_once_with([ self.path("crm_resource"), "--cleanup", "--resource", resource, "--node", node ]) self.assertEqual(expected_stdout + "\n" + expected_stderr, real_output)
def test_threshold_exceeded(self): mock_runner = mock.MagicMock(spec_set=CommandRunner) mock_runner.run.return_value = ( self.fixture_status_xml(1000, 1000), "", 0 ) assert_raise_library_error( lambda: lib.resource_cleanup(mock_runner), ( Severity.ERROR, report_codes.RESOURCE_CLEANUP_TOO_TIME_CONSUMING, {"threshold": 100}, report_codes.FORCE_LOAD_THRESHOLD ) ) mock_runner.run.assert_called_once_with(self.crm_mon_cmd())
def test_error_cleanup(self): self.config.runner.pcmk.resource_cleanup( stdout=self.stdout, stderr=self.stderr, returncode=1 ) env = self.env_assist.get_env() self.env_assist.assert_raise_library_error( lambda: lib.resource_cleanup(env.cmd_runner()), [ fixture.error( report_codes.RESOURCE_CLEANUP_ERROR, force_code=None, reason=(self.stderr + "\n" + self.stdout) ) ], expected_in_processor=False )
def test_basic(self): expected_stdout = "expected output" expected_stderr = "expected stderr" mock_runner = mock.MagicMock(spec_set=CommandRunner) call_list = [ mock.call(self.crm_mon_cmd()), mock.call([self.path("crm_resource"), "--cleanup"]), ] return_value_list = [ (self.fixture_status_xml(1, 1), "", 0), (expected_stdout, expected_stderr, 0), ] mock_runner.run.side_effect = return_value_list real_output = lib.resource_cleanup(mock_runner) self.assertEqual(len(return_value_list), len(call_list)) self.assertEqual(len(return_value_list), mock_runner.run.call_count) mock_runner.run.assert_has_calls(call_list) self.assertEqual(expected_stdout + "\n" + expected_stderr, real_output)
def test_node_and_resource(self): node = "test_node" resource = "test_resource" expected_stdout = "expected output" expected_stderr = "expected stderr" mock_runner = mock.MagicMock(spec_set=CommandRunner) mock_runner.run.return_value = (expected_stdout, expected_stderr, 0) real_output = lib.resource_cleanup( mock_runner, resource=resource, node=node ) mock_runner.run.assert_called_once_with( [ self.path("crm_resource"), "--cleanup", "--resource", resource, "--node", node ] ) self.assertEqual( expected_stdout + "\n" + expected_stderr, real_output )
def test_basic(self): expected_stdout = "expected output" expected_stderr = "expected stderr" mock_runner = mock.MagicMock(spec_set=CommandRunner) call_list = [ mock.call(self.crm_mon_cmd()), mock.call([self.path("crm_resource"), "--cleanup"]), ] return_value_list = [ (self.fixture_status_xml(1, 1), "", 0), (expected_stdout, expected_stderr, 0), ] mock_runner.run.side_effect = return_value_list real_output = lib.resource_cleanup(mock_runner) self.assertEqual(len(return_value_list), len(call_list)) self.assertEqual(len(return_value_list), mock_runner.run.call_count) mock_runner.run.assert_has_calls(call_list) self.assertEqual( expected_stdout + "\n" + expected_stderr, real_output )
def test_error_state(self): expected_stdout = "some info" expected_stderr = "some error" expected_retval = 1 mock_runner = mock.MagicMock(spec_set=CommandRunner) mock_runner.run.return_value = ( expected_stdout, expected_stderr, expected_retval ) assert_raise_library_error( lambda: lib.resource_cleanup(mock_runner), ( Severity.ERROR, report_codes.CRM_MON_ERROR, { "reason": expected_stderr + "\n" + expected_stdout, } ) ) mock_runner.run.assert_called_once_with(self.crm_mon_cmd())