def test__when_calling_sbatch__should_return_job_id(sbatch_sshclient_fake):
    executor = SSHExecutor(main_connection())
    executor.connect()
    sut = SlurmController(executor)

    actual = sut.submit("myjob.job")

    assert actual.jobid == DEFAULT_JOB_ID
def test__when_polling_job__should_return_slurm_job_with_matching_data(
        sshclient_poll_running_job_fake):
    executor = SSHExecutor(main_connection())
    executor.connect()
    sut = SlurmController(executor)
    sut.submit("myjob.job")

    actual = sut.poll_status(DEFAULT_JOB_ID)

    assert actual == running_slurm_job()
def run_launch_workflow(options: LaunchOptions,
                        executor: CommandExecutor = None,
                        watcher_factory: JobWatcherFactory = None) -> int:
    executor = executor or SlurmJobExecutorSpy()
    controller = SlurmController(executor, watcher_factory)
    sut = LaunchStage(controller, options.sbatch)

    return sut(Mock(spec=UI))
def test__given_running_workflow__when_canceling__should_call_cancel_on_job():
    executor = SlurmJobExecutorSpy()
    controller = SlurmController(executor)

    opts = launch_options(watch=True)
    sut = LaunchStage(controller, opts)

    sut(Mock(spec=UI))

    sut.cancel(Mock(spec=UI))

    assert_job_canceled(executor, DEFAULT_JOB_ID, command_index=-1)
def test__when_canceling_before_running__should_raise_no_job_launched_error():
    controller = SlurmController(CommandExecutorStub())
    sut = LaunchStage(controller, launch_options(watch=True))

    with pytest.raises(NoJobLaunchedError):
        sut.cancel(Mock())
Пример #6
0
def make_job_provider(executor, factory=None):
    controller = SlurmController(executor, factory)
    return BatchJobProviderSpy(controller, DEFAULT_JOB_ID, factory)
Пример #7
0
def make_sut():
    executor = SlurmJobExecutorSpy(sacct_cmd=SuccessfulSlurmJobCommandStub())
    controller = SlurmController(executor)
    return StatusStage(controller, DEFAULT_JOB_ID)
def make_sut(executor):
    controller = SlurmController(executor)
    sut = CancelStage(controller, DEFAULT_JOB_ID)
    return sut
Пример #9
0
def make_sut(executor_spy: CommandExecutor, jobid: str, factory: JobWatcherFactory = None) -> SlurmBatchJob:
    slurm = SlurmController(executor_spy, factory)
    return SlurmBatchJob(slurm, jobid, cast(JobWatcherFactory, factory))
def make_sut(executor: CommandExecutor,
             factory: JobWatcherFactory = None) -> SlurmController:
    return SlurmController(executor, factory)
Пример #11
0
 def _get_workflow(self, executor: CommandExecutor,
                   options: Options) -> Workflow:
     controller = SlurmController(executor)
     return self._workflow_factory(controller, options)