blob: fb219544b0e233658e614b685bfaa2b2a22b003c [file] [log] [blame]
# Copyright (c) 2020, the Dart project authors. All rights reserved. Use of this
# source code is governed by a BSD-style license that can be found in the
# LICENSE file.
from api import BisectApi
from recipe_engine import recipe_test_api
from google.protobuf import json_format
from google.protobuf.struct_pb2 import Struct
from PB.go.chromium.org.luci.buildbucket.proto import build as build_pb2
from PB.go.chromium.org.luci.buildbucket.proto import builder as builder_pb2
from PB.go.chromium.org.luci.buildbucket.proto import builds_service as builds_service_pb2
class BisectBuildTestApi(recipe_test_api.RecipeTestApi):
def build(self,
api,
builder_name,
build_number,
revision,
is_bisection=False,
is_success=True):
builder = builder_pb2.BuilderID(
project='dart', bucket='ci', builder=builder_name)
properties = Struct()
properties.update({'got_revision': revision})
if is_bisection:
properties.update({'bisect_reason': 'failure'})
status = 'SUCCESS' if is_success else 'FAILURE'
return build_pb2.Build(
builder=builder,
status=status,
number=build_number,
output=build_pb2.Build.Output(properties=properties),
)
def fetch_previous_builds(self, api, builds, start_number=0):
name = '%s.%s' % (BisectApi.FIND_BASE_BUILD_STEP_NAME,
BisectApi.FETCH_BUILDS_STEP_NAME)
return api.buildbucket.simulated_search_results(builds, step_name=name)