예제 #1
0
    def test_run_fails_using_exit_bash_builtin(self):
        job = Job(
            {
                "name":
                "exit 1",
                "executable":
                "/bin/bash",
                "stdout":
                "exit_out",
                "stderr":
                "exit_err",
                "argList":
                ["-c", 'echo "failed with {}" 1>&2 ; exit {}'.format(1, 1)],
            },
            0,
        )

        statuses = list(job.run())

        self.assertEqual(3, len(statuses), "Wrong statuses count")
        self.assertEqual(1, statuses[2].exit_code,
                         "Exited status wrong exit_code")
        self.assertEqual(
            "Process exited with status code 1",
            statuses[2].error_message,
            "Exited status wrong error_message",
        )
예제 #2
0
    def test_run_with_defined_executable_but_missing(self):
        executable = os.path.join(os.getcwd(), "this/is/not/a/file")
        job = Job(
            {
                "name": "TEST_EXECUTABLE_NOT_FOUND",
                "executable": executable,
                "stdout": "mkdir_out",
                "stderr": "mkdir_err",
            }, 0)

        with self.assertRaises(IOError):
            for _ in job.run():
                pass
예제 #3
0
    def test_run_with_defined_executable_no_exec_bit(self):
        non_executable = os.path.join(os.getcwd(), "foo")
        with open(non_executable, "a"):
            pass

        job = Job(
            {
                "name": "TEST_EXECUTABLE_NOT_EXECUTABLE",
                "executable": non_executable,
                "stdout": "mkdir_out",
                "stderr": "mkdir_err",
            }, 0)

        with self.assertRaises(IOError):
            for _ in job.run():
                pass
예제 #4
0
파일: test_job.py 프로젝트: oyvindeide/ert
def test_makedirs(monkeypatch, tmp_path):
    """
    Test that the directories for the output process streams are created if
    they don't exist
    """
    monkeypatch.chdir(tmp_path)
    job = Job(
        {
            "executable": "/usr/bin/true",
            "stdout": "a/file",
            "stderr": "b/c/file",
        },
        0,
    )
    for _ in job.run():
        pass
    assert (tmp_path / "a/file").is_file()
    assert (tmp_path / "b/c/file").is_file()
예제 #5
0
파일: test_job.py 프로젝트: oyvindeide/ert
    def test_run_with_process_failing(
        self, mock_process, mock_popen, mock_assert_file_executable
    ):
        job = Job({}, 0)
        type(mock_process.return_value.memory_info.return_value).rss = PropertyMock(
            return_value=10
        )
        mock_process.return_value.wait.return_value = 9

        run = job.run()

        self.assertIsInstance(next(run), Start, "run did not yield Start message")
        self.assertIsInstance(next(run), Running, "run did not yield Running message")
        exited = next(run)
        self.assertIsInstance(exited, Exited, "run did not yield Exited message")
        self.assertEqual(9, exited.exit_code, "Exited message had unexpected exit code")

        with self.assertRaises(StopIteration):
            next(run)