def execute(self, scheduler, storage, product, *subjects):
    request = self.execute_request(scheduler, storage, product, *subjects)
    states = scheduler.root_entries(request).values()
    if any(type(state) is not Return for state in states):
      with temporary_file_path(cleanup=False, suffix='.dot') as dot_file:
        scheduler.visualize_graph_to_file(request.roots, dot_file)
        raise ValueError('At least one request failed: {}. Visualized as {}'.format(states, dot_file))
    return list(state.value for state in states)
Runs an ExecutionRequest for the given product and subjects, and returns the result value.
dataset/ETHPy150Open pantsbuild/pants/tests/python/pants_test/engine/exp/scheduler_test_base.py/SchedulerTestBase.execute