def test_status_is_shouldrun_with_target_that_should_not_run(self): self.backend.status.return_value = Status.RUNNING self.graph.should_run.return_value = False criteria = Criteria(status='shouldrun') f = StatusFilter(self.graph, self.backend, criteria) self.assertFalse(f.predicate(self.target))
def test_status_is_completed_with_running_target(self): self.backend.status.return_value = Status.RUNNING self.graph.should_run.return_value = True criteria = Criteria(status='completed') f = StatusFilter(self.graph, self.backend, criteria) self.assertFalse(f.predicate(self.target))
def test_status_is_shouldrun_with_target_that_should_run(self): self.backend.status.return_value = Status.UNKNOWN self.graph.should_run.return_value = True criteria = Criteria(status='shouldrun') f = StatusFilter(self.graph, self.backend, criteria) self.assertTrue(f.predicate(self.target))
def test_filter_status_completed(scheduler): scheduler.backend.status.return_value = Status.UNKNOWN status_filter = StatusFilter(scheduler=scheduler, status=[TargetStatus.COMPLETED]) target = Target( "TestTarget", inputs=[], outputs=[], options={}, working_dir="/some/dir" ) status_filter.scheduler.should_run.return_value = False assert list(status_filter.apply([target])) == [target] status_filter.scheduler.should_run.return_value = True assert list(status_filter.apply([target])) == []
def test_filter_status_submitted(scheduler): status_filter = StatusFilter(scheduler=scheduler, status=[TargetStatus.SUBMITTED]) target = Target( "TestTarget", inputs=[], outputs=[], options={}, working_dir="/some/dir" ) status_filter.scheduler.backend.status.return_value = Status.UNKNOWN assert list(status_filter.apply([target])) == [] status_filter.scheduler.backend.status.return_value = Status.SUBMITTED assert list(status_filter.apply([target])) == [target] status_filter.scheduler.backend.status.return_value = Status.RUNNING assert list(status_filter.apply([target])) == []
def test_filter_status_shouldrun(scheduler): status_filter = StatusFilter(scheduler=scheduler, status=[TargetStatus.SHOULDRUN]) target = Target( "TestTarget", inputs=[], outputs=[], options={}, working_dir="/some/dir" ) status_filter.scheduler.backend.status.return_value = Status.UNKNOWN status_filter.scheduler.should_run.return_value = False assert list(status_filter.apply([target])) == [] status_filter.scheduler.backend.status.return_value = Status.UNKNOWN status_filter.scheduler.should_run.return_value = True assert list(status_filter.apply([target])) == [target] status_filter.scheduler.backend.status.return_value = Status.RUNNING status_filter.scheduler.should_run.return_value = False assert list(status_filter.apply([target])) == [] status_filter.scheduler.backend.status.return_value = Status.RUNNING status_filter.scheduler.should_run.return_value = True assert list(status_filter.apply([target])) == [] status_filter.scheduler.backend.status.return_value = Status.SUBMITTED status_filter.scheduler.should_run.return_value = False assert list(status_filter.apply([target])) == [] status_filter.scheduler.backend.status.return_value = Status.SUBMITTED status_filter.scheduler.should_run.return_value = True assert list(status_filter.apply([target])) == []
def test_filter_status(status, result): status_filter = StatusFilter( status_provider=status_provider, status=status, ) assert set(status_filter.apply(targets)) == set(result)
def test_status_is_submitted_with_target_that_is_not_submitted(self): self.backend.status.return_value = Status.UNKNOWN criteria = Criteria(status='submitted') f = StatusFilter(self.graph, self.backend, criteria) self.assertFalse(f.predicate(self.target))
def test_status_is_running_with_target_that_is_running(self): self.backend.status.return_value = Status.RUNNING criteria = Criteria(status='running') f = StatusFilter(self.graph, self.backend, criteria) self.assertTrue(f.predicate(self.target))
def test_should_use_filter(self): criteria = Criteria(status='running') f = StatusFilter(self.graph, self.backend, criteria) self.assertTrue(f.use())
def test_should_not_use_filter(self): criteria = Criteria(status=None) f = StatusFilter(self.graph, self.backend, criteria) self.assertFalse(f.use())