def extra_prepare_after_activation(self, configuration, args_dict): """Called after the configuration.converters are activated""" def task_maker(name, description=None, action=None, label="Project", **options): if not action: action = name self.task_overrides[name] = Task(action=action, description=description, options=options, label=label) return self.task_overrides[name] # Post register our addons extra_args = {"harpoon.crosshairs": {"task_maker": task_maker}} self.register.post_register(extra_args) # Make the task finder task_finder = TaskFinder(self) self.configuration["task_runner"] = task_finder.task_runner task_finder.find_tasks(getattr(self, "task_overrides", {}))
from harpoon.task_finder import TaskFinder from harpoon.collector import Collector from harpoon.errors import BadTask from tests.helpers import HarpoonCase import mock import json describe HarpoonCase, "TaskFinder": it "takes in a collector": collector = mock.Mock(name="collector") configuration = mock.Mock(name="configuration") collector.configuration = configuration task_finder = TaskFinder(collector) self.assertEqual(task_finder.tasks, {}) self.assertIs(task_finder.collector, collector) describe "image_finder": it "defaults to the chosen_image": chosen_image = mock.Mock(name="chosen_image") configuration = {"harpoon": type("Harpoon", (object, ), {"chosen_image": chosen_image})()} collector = mock.Mock(name="collector", configuration=configuration) task_finder = TaskFinder(collector) task_finder.tasks["blah"] = type("Task", (object, ), {})() self.assertIs(task_finder.image_finder("blah"), chosen_image) it "chooses the image on the task": chosen_image = mock.Mock(name="chosen_image")
def extra_prepare_after_activation(self, configuration, cli_args): """Called after the configuration.converters are activated""" task_finder = TaskFinder(self) self.configuration["task_runner"] = task_finder.task_runner task_finder.find_tasks({})