def test_adapter_results_with_posttask(tmpdir): temp_path = tmpdir.mkdir("test") post_task = SimpleSubtask("Ending") builder = TaskBuilder(SimpleTaskBuilder(), temp_path) builder.set_posttask(subtask=post_task) builder.add_subtask(subtask=SimpleSubtask("First")) builder.add_subtask(subtask=SimpleSubtask("Second")) new_task = builder.build_task() with worker.ToolJobManager() as manager: for subtask in new_task.subtasks: adapted_tool = speedwagon.worker.SubtaskJobAdapter(subtask) manager.add_job(adapted_tool, adapted_tool.settings) manager.start() results = list() for r in manager.get_results(): results.append(r.data) assert len(results) == 3 assert "First" == results[0] assert "Second" == results[1] assert "Ending" == results[2] shutil.rmtree(tmpdir) shortcut = os.path.join(tmpdir.dirname, "test_adapter_results_with_postcurrent") os.unlink(shortcut)
def test_task_can_be_picked(tmpdir): temp_path = tmpdir.mkdir("test") builder = TaskBuilder(SimpleTaskBuilder(), temp_path) builder.add_subtask(subtask=SimpleSubtask(message="got it")) task_original = builder.build_task() serialized = TaskBuilder.save(task_original) task_unserialized = TaskBuilder.load(serialized) assert task_original.name == task_unserialized.name shutil.rmtree(tmpdir) shortcut = os.path.join(tmpdir.dirname, "test_task_can_be_pickedcurrent") os.unlink(shortcut)
def test_posttask_builder(tmpdir): temp_path = tmpdir.mkdir("test") posttask = SimpleSubtask("ending") builder = TaskBuilder(SimpleTaskBuilder(), temp_path) builder.add_subtask(subtask=SimpleSubtask("First")) builder.add_subtask(subtask=SimpleSubtask("Second")) builder.set_posttask(posttask) task = builder.build_task() assert task.posttask == posttask shutil.rmtree(tmpdir) shortcut = os.path.join(tmpdir.dirname, "test_posttask_buildercurrent") os.unlink(shortcut)
def test_pretask_builder(tmpdir): temp_path = tmpdir.mkdir("test") pretask = SimplePreTask("Starting") builder = TaskBuilder(SimpleTaskBuilder(), temp_path) builder.set_pretask(subtask=pretask) builder.add_subtask(subtask=SimpleSubtask("First")) builder.add_subtask(subtask=SimpleSubtask("Second")) task = builder.build_task() assert task.pretask == pretask shutil.rmtree(tmpdir) shortcut = os.path.join(tmpdir.dirname, "test_pretask_buildercurrent") if os.path.exists(shortcut): os.unlink(shortcut)
def test_adapter_results_with_posttask(tmpdir): temp_path = tmpdir.mkdir("test") post_task = SimpleSubtask("Ending") builder = TaskBuilder(SimpleTaskBuilder(), temp_path) builder.set_posttask(subtask=post_task) builder.add_subtask(subtask=SimpleSubtask("First")) builder.add_subtask(subtask=SimpleSubtask("Second")) new_task = builder.build_task() queued_order = [] with worker.ToolJobManager() as manager: for subtask in new_task.subtasks: adapted_tool = speedwagon.worker.SubtaskJobAdapter(subtask) manager.add_job(adapted_tool, adapted_tool.settings) for message in manager._pending_jobs.queue: print(message) queued_order.append(message.args['message']) manager.start() # Fuzz this time.sleep(1) results = list() for r in manager.get_results(): results.append(r.data) assert len(results) == 3 assert "First" == results[0], "results = {}, queued_order={}".format( results, queued_order) assert "Second" == results[1] assert "Ending" == results[2] shutil.rmtree(tmpdir) shortcut = \ os.path.join(tmpdir.dirname, "test_adapter_results_with_postcurrent") if os.path.exists(shortcut): os.unlink(shortcut)