def test_line_run_remove_add_outdated(self): task12 = TestTask('12', [(1,)], [(2,)]) task23 = TestTask('23', [(2,)], [(3,)]) tracker = _tracker.Tracker().replaced( new_paths=[(1,), (2,), (3,)], new_tasks=[ task12, task23 ] ) runner.run_tracker(tracker, [ runner.Event( path_selector=lambda unused_tracker: [(1,)], path_regenerator=lambda unused_tracker, unused_paths: [], ), runner.Event( path_selector=lambda unused_tracker: [], path_regenerator=lambda unused_tracker, unused_paths: [(1,)], flags=runner.EventFlags( paths_state=runner.PathState.up_to_date ) ) ], outdated=True) self.assertEqual(1, task12.ran_count) self.assertEqual(1, task23.ran_count) self.assertLessEqual(task12.run_time, task23.run_time)
def test_failure(self): tracker = _tracker.Tracker().replaced( new_paths=[(1,)], new_tasks=[ FailingTestTask('', [], [(1,)], RuntimeError('foo')) ] ) with self.assertRaises(runner.RunnerError): runner.run_tracker(tracker, [], outdated=True)
def test_up_to_date_line_run_does_nothing(self): task12 = TestTask('12', [(1,)], [(2,)]) task23 = TestTask('23', [(2,)], [(3,)]) tracker = _tracker.Tracker().replaced( new_paths=[(1,), (2,), (3,)], new_tasks=[ task12, task23 ] ) runner.run_tracker(tracker, [], outdated=False) self.assertEqual(0, task12.ran_count) self.assertEqual(0, task23.ran_count)
def test_failure_keep_going(self): task2 = TestTask('2', [], [(2,)]) task23 = TestTask('23', [(2,)], [(3,)]) tracker = _tracker.Tracker().replaced( new_paths=[(1,), (2,), (3,)], new_tasks=[ FailingTestTask('', [], [(1,)], RuntimeError('foo')), task2, task23 ] ) with self.assertRaises(runner.RunnerError): runner.run_tracker(tracker, [], keep_going=True, outdated=True) self.assertEqual(1, task2.ran_count) self.assertEqual(1, task23.ran_count)
def test_line_run_initializing_task(self): task0 = TestTask('0', [], [(1,)]) task12 = TestTask('12', [(1,)], [(2,)]) task23 = TestTask('23', [(2,)], [(3,)]) tracker = _tracker.Tracker().replaced( new_paths=[(1,), (2,), (3,)], new_tasks=[ task0, task12, task23 ] ) runner.run_tracker(tracker, [], outdated=True) self.assertEqual(1, task0.ran_count) self.assertEqual(1, task12.ran_count) self.assertEqual(1, task23.ran_count) self.assertLessEqual(task0.run_time, task12.run_time) self.assertLessEqual(task12.run_time, task23.run_time)
def test_callbacks_not_of_right_type(self): with self.assertRaises(TypeError): runner.run_tracker(_tracker.Tracker(), [], callbacks='asdf')
def test_not_a_tracker(self): with self.assertRaises(TypeError): runner.run_tracker('42', [])