def test_success(self, mock_write_tmpfile): tmpfile_new_cib = mock.MagicMock() tmpfile_new_cib.name = rc("new_cib.tmp") tmpfile_new_cib.read.return_value = "new cib data" tmpfile_transitions = mock.MagicMock() tmpfile_transitions.name = rc("transitions.tmp") tmpfile_transitions.read.return_value = "transitions data" mock_write_tmpfile.side_effect = [tmpfile_new_cib, tmpfile_transitions] expected_stdout = "simulate output" expected_stderr = "" expected_retval = 0 mock_runner = get_runner(expected_stdout, expected_stderr, expected_retval) result = lib.simulate_cib_xml(mock_runner, "<cib />") self.assertEqual(result[0], expected_stdout) self.assertEqual(result[1], "transitions data") self.assertEqual(result[2], "new cib data") mock_runner.run.assert_called_once_with([ self.path("crm_simulate"), "--simulate", "--save-output", tmpfile_new_cib.name, "--save-graph", tmpfile_transitions.name, "--xml-pipe", ], stdin_string="<cib />")
def test_error_reading_transitions(self, mock_write_tmpfile): tmpfile_new_cib = mock.MagicMock() tmpfile_new_cib.name = rc("new_cib.tmp") tmpfile_new_cib.read.return_value = "new cib data" tmpfile_transitions = mock.MagicMock() tmpfile_transitions.name = rc("transitions.tmp") tmpfile_transitions.read.side_effect = OSError(1, "some error") mock_write_tmpfile.side_effect = [tmpfile_new_cib, tmpfile_transitions] expected_stdout = "simulate output" expected_stderr = "" expected_retval = 0 mock_runner = get_runner( expected_stdout, expected_stderr, expected_retval ) assert_raise_library_error( lambda: lib.simulate_cib_xml(mock_runner, "<cib />"), fixture.error( report_codes.CIB_SIMULATE_ERROR, reason="some error", cib="<cib />", ), )
def test_error_creating_cib(self, mock_write_tmpfile): mock_write_tmpfile.side_effect = OSError(1, "some error") mock_runner = get_runner() assert_raise_library_error( lambda: lib.simulate_cib_xml(mock_runner, "<cib />"), fixture.error( report_codes.CIB_SIMULATE_ERROR, reason="some error", ), ) mock_runner.run.assert_not_called()
def test_error_creating_transitions(self, mock_write_tmpfile): tmpfile_new_cib = mock.MagicMock() mock_write_tmpfile.side_effect = [ tmpfile_new_cib, OSError(1, "some error") ] mock_runner = get_runner() assert_raise_library_error( lambda: lib.simulate_cib_xml(mock_runner, "<cib />"), fixture.error( report_codes.CIB_SIMULATE_ERROR, reason="some error", cib="<cib />", ), ) mock_runner.run.assert_not_called()