def test_signaling_task(self): SignalingTask = task_manager.get_signaling_task_class(task_manager.Task) st = SignalingTask() attr_results = {} @st.on_set.connect def on_set(sender, **kwargs): attr_results[kwargs.get('attr')] = kwargs.get('value') for prop in st._task_properties: setattr(st, prop, "%s_test" % prop) assert attr_results[prop] == getattr(st, prop)
task_definition = json.loads(task_json) except Exception as e: logger.exception("Unable to read task definition from stdin.") raise e # Load the task try: task_config = task_definition['config']['task'] class_parts = task_config['class'].split('.') module_name = '.'.join(class_parts[:-1]) class_name = class_parts[-1] module = importlib.import_module(module_name) TaskClass = getattr(module, class_name) # Instrument the task class to send signals. SignalingTaskClass = task_manager.get_signaling_task_class(TaskClass) task_args = task_config.get('args', []) task_kwargs = task_config.get('kwargs', {}) task_kwargs['logger'] = logger task = SignalingTaskClass(*task_args, **task_kwargs) except: logger.exception("Unable to create task.") raise # Create the runner. post_url = task_definition['config']['update_url'] task_runner = PostingTaskRunner(post_url=post_url, delay=1) # If running from tty, use same stdout/stderr. if sys.stdin.isatty():