コード例 #1
0
 def test_instantiation(self):
     config_file = self.createTestPath("local/simple_config/minimum_config")
     with ErtTestContext("kjell", config_file) as work_area:
         ert = work_area.getErt()
         configureErtNotifier(ert, config_file)
         brm = BaseRunModel(ert.get_queue_config())
         self.assertFalse(brm.isQueueRunning())
コード例 #2
0
    def test_end_events_from_finished_model(self):
        brm = BaseRunModel(None, phase_count=0)
        tracker = BlockingTracker(brm, 1, 1)

        events = list(tracker.track())
        for idx, ev_cls in enumerate([GeneralEvent, DetailedEvent, EndEvent]):
            self.assertIsInstance(events[idx], ev_cls)
コード例 #3
0
    def test_qtimers_are_stopped_for_finished_model(self):
        brm = BaseRunModel(None, phase_count=0)  # a finished model
        tracker = QTimerTracker(brm, Mock, 1, 0, 0, Mock())

        tracker._tick()

        for timer in tracker._qtimers:
            timer.stop.assert_called_once()
コード例 #4
0
def test_failed_realizations(initials, completed, any_failed, failures):
    brm = BaseRunModel(None, None, None)
    brm._initial_realizations_mask = initials
    brm._completed_realizations_mask = completed

    assert brm._create_mask_from_failed_realizations() == failures
    assert brm._count_successful_realizations() == sum(completed)

    assert brm.has_failed_realizations() == any_failed
コード例 #5
0
    def test_end_events_are_emitted(self):
        event_handler = Mock()
        brm = BaseRunModel(None, phase_count=0)  # a finished model
        tracker = QTimerTracker(brm, Mock, 1, 0, event_handler)

        tracker._general()

        for idx, ev_cls in enumerate([GeneralEvent, DetailedEvent, EndEvent]):
            _, args, _ = event_handler.mock_calls[idx]
            self.assertIsInstance(args[0], ev_cls,
                                  "called with unexpected event")
コード例 #6
0
    def test_event_loop_runs(self):
        brm = BaseRunModel(None, phase_count=1)
        tracker = BlockingTracker(brm, 1, 1, 1)

        idx = 0
        expected = [TickEvent, GeneralEvent, DetailedEvent, TickEvent]
        for event in tracker.track():
            self.assertIsInstance(event, expected[idx], "got unexpected event")

            idx += 1
            if idx == 4:  # End after recieving the second TickEvent
                break
コード例 #7
0
ファイル: test_base_run_model.py プロジェクト: oysteoh/ert
def test_detailed_progress():
    brm = BaseRunModel(None)
    brm._run_context = Mock()
    brm._run_context.get_iter.return_value = 0

    run_arg1 = Mock()
    run_arg1.getQueueIndex.return_value = 0
    run_arg2 = Mock()
    run_arg2.getQueueIndex.return_value = 1
    run_arg2.iens = 0
    brm._run_context.__iter__ = Mock()
    brm._run_context.__iter__.return_value = iter([run_arg1, run_arg2])

    def job_status(queue_index):
        if queue_index == 0:
            return JobStatusType.JOB_QUEUE_PENDING
        if queue_index == 1:
            return JobStatusType.JOB_QUEUE_RUNNING

    brm._job_queue = Mock()
    brm._job_queue.getJobStatus.side_effect = job_status
    brm._job_queue.did_job_time_out.return_value = False

    with patch("ert_shared.models.base_run_model.ForwardModelStatus") as f:
        f.load.return_value = Mock()
        f.load.return_value.jobs = [{"name": "job1"}]
        brm.updateDetailedProgress()

    jobs, _ = brm.realization_progress[0][0]
    assert len(jobs) == 1
    assert "name" in jobs[0]
コード例 #8
0
    def test_detailed_progress(self):
        # TODO: rewrite to make use of fixtures
        brm = BaseRunModel(None)
        brm._run_context = Mock()
        brm._run_context.get_iter.return_value = 0

        run_arg1 = Mock()
        run_arg1.getQueueIndex.return_value = 0
        run_arg2 = Mock()
        run_arg2.getQueueIndex.return_value = 1
        run_arg2.iens = 0
        brm._run_context.__iter__ = Mock()
        brm._run_context.__iter__.return_value = iter([run_arg1, run_arg2])

        def job_status(queue_index):
            if queue_index == 0:
                return JobStatusType.JOB_QUEUE_PENDING
            if queue_index == 1:
                return JobStatusType.JOB_QUEUE_RUNNING

        brm._job_queue = Mock()
        brm._job_queue.getJobStatus.side_effect = job_status

        with patch("ert_shared.models.base_run_model.ForwardModelStatus") as f:
            f.load.return_value = Mock()
            f.load.return_value.jobs = [{"name": "job1"}]
            brm.updateDetailedProgress()

        jobs, status = brm.realization_progress[0][0]
        self.assertEqual(len(jobs), 1)
        self.assertIn("name", jobs[0])
コード例 #9
0
 def test_instantiation(self):
     config_file = self.createTestPath("local/simple_config/minimum_config")
     with ErtTestContext("kjell", config_file) as work_area:
         ert = work_area.getErt()
         brm = BaseRunModel(None, ert, ert.get_queue_config())
         assert brm.support_restart
コード例 #10
0
def test_active_realizations(initials, expected):
    brm = BaseRunModel(None, None, None)
    brm._initial_realizations_mask = initials
    assert brm._active_realizations == expected
    assert brm._ensemble_size == len(initials)
コード例 #11
0
def test_is_forward_model_finished(test_input, expected):
    assert BaseRunModel.is_forward_model_finished(test_input) is expected