def test_permit_new_job_override_tmp_dir(sched_cfg, dir_cfg): phases = job.Phase.list_from_tuples([(3, 1), (3, 2), (3, 3)]) assert manager.phases_permit_new_job(phases, '/mnt/tmp/04', sched_cfg, dir_cfg) phases = job.Phase.list_from_tuples([(3, 1), (3, 2), (3, 3), (3, 6)]) assert not manager.phases_permit_new_job(phases, '/mnt/tmp/04', sched_cfg, dir_cfg)
def test_permit_new_job_override_tmp_dir( sched_cfg: configuration.Scheduling, dir_cfg: configuration.Directories) -> None: phases = job.Phase.list_from_tuples([(3, 1), (3, 2), (3, 3)]) assert manager.phases_permit_new_job(phases, '/mnt/tmp/04', sched_cfg, dir_cfg) phases = job.Phase.list_from_tuples([(3, 1), (3, 2), (3, 3), (3, 6)]) assert not manager.phases_permit_new_job(phases, '/mnt/tmp/04', sched_cfg, dir_cfg)
def tmp_dir_report(jobs, dir_cfg, sched_cfg, width, start_row=None, end_row=None, prefix=''): '''start_row, end_row let you split the table up if you want''' tab = tt.Texttable() headings = ['tmp', 'ready', 'phases'] tab.header(headings) tab.set_cols_dtype('t' * len(headings)) tab.set_cols_align('r' * (len(headings) - 1) + 'l') for i, d in enumerate(sorted(dir_cfg.tmp)): if (start_row and i < start_row) or (end_row and i >= end_row): continue phases = sorted(job.job_phases_for_tmpdir(d, jobs)) ready = manager.phases_permit_new_job(phases, d, sched_cfg, dir_cfg) row = [ abbr_path(d, prefix), 'OK' if ready else '--', phases_str(phases, 5) ] tab.add_row(row) tab.set_max_width(width) tab.set_deco(tt.Texttable.BORDER | tt.Texttable.HEADER) tab.set_deco(0) # No borders return tab.draw()
def tmp_dir_report(jobs: typing.List[job.Job], dir_cfg: configuration.Directories, sched_cfg: configuration.Scheduling, width: int, start_row: typing.Optional[int] = None, end_row: typing.Optional[int] = None, prefix: str = '') -> str: '''start_row, end_row let you split the table up if you want''' tab = tt.Texttable() headings = ['tmp', 'ready', 'phases'] tab.header(headings) tab.set_cols_dtype('t' * len(headings)) tab.set_cols_align('r' * (len(headings) - 1) + 'l') for i, d in enumerate(sorted(dir_cfg.tmp)): if (start_row and i < start_row) or (end_row and i >= end_row): continue phases = sorted(job.job_phases_for_tmpdir(d, jobs)) ready = manager.phases_permit_new_job(phases, d, sched_cfg, dir_cfg) row = [ abbr_path(d, prefix), 'OK' if ready else '--', phases_str(phases, 5) ] tab.add_row(row) tab.set_max_width(width) tab.set_deco(tt.Texttable.BORDER | tt.Texttable.HEADER) tab.set_deco(0) # No borders return tab.draw() # type: ignore[no-any-return]
def test_permit_new_job_too_many_jobs_nonephase( sched_cfg: configuration.Scheduling, dir_cfg: configuration.Directories) -> None: phases = job.Phase.list_from_tuples([(None, None), (3, 1), (3, 3)]) assert manager.phases_permit_new_job(phases, '/mnt/tmp/00', sched_cfg, dir_cfg)
def test_permit_new_job_pre_milestone( sched_cfg: configuration.Scheduling, dir_cfg: configuration.Directories) -> None: phases = job.Phase.list_from_tuples([(2, 3), (4, 1)]) assert not manager.phases_permit_new_job(phases, '/mnt/tmp/00', sched_cfg, dir_cfg)
def test_permit_new_job_too_many_jobs_nonephase(sched_cfg, dir_cfg): phases = job.Phase.list_from_tuples([ (None, None), (3, 1), (3, 3) ]) assert manager.phases_permit_new_job( phases, '/mnt/tmp/00', sched_cfg, dir_cfg)
def test_permit_new_job_pre_milestone(sched_cfg, dir_cfg): phases = job.Phase.list_from_tuples([ (2, 3), (4, 1) ]) assert not manager.phases_permit_new_job( phases, '/mnt/tmp/00', sched_cfg, dir_cfg)
def test_permit_new_job_override_tmp_dir(sched_cfg, dir_cfg): assert manager.phases_permit_new_job([(3, 1), (3, 2), (3, 3)], '/mnt/tmp/04', sched_cfg, dir_cfg) assert not manager.phases_permit_new_job([(3, 1), (3, 2), (3, 3), (3, 6)], '/mnt/tmp/04', sched_cfg, dir_cfg)
def test_permit_new_job_too_many_jobs_nonephase(sched_cfg, dir_cfg): assert manager.phases_permit_new_job([(None, None), (3, 1), (3, 3)], '/mnt/tmp/00', sched_cfg, dir_cfg)
def test_permit_new_job_too_many_jobs_zerophase(sched_cfg, dir_cfg): assert not manager.phases_permit_new_job([(3, 0), (3, 1), (3, 3)], '/mnt/tmp/00', sched_cfg, dir_cfg)
def test_permit_new_job_pre_milestone(sched_cfg, dir_cfg): assert not manager.phases_permit_new_job([(2, 3), (4, 1)], '/mnt/tmp/00', sched_cfg, dir_cfg)