Exemplo n.º 1
0
    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 />")
Exemplo n.º 2
0
    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 />",
            ),
        )
Exemplo n.º 3
0
 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()
Exemplo n.º 4
0
 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()