# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# TODO(borenet): This module was copied from build.git and heavily modified to
# remove dependencies on other modules in build.git. It belongs in a different
# repo. Remove this once it has been moved.
from recipe_engine import recipe_test_api
import state
class SwarmingTestApi(recipe_test_api.RecipeTestApi):
@recipe_test_api.placeholder_step_data
def summary(self, data):
return self.m.json.output(data)
def canned_summary_output(
self, shards=1, failure=False, internal_failure=False):
return self.summary({
'shards': [
{
'abandoned_ts': None,
'bot_id': 'vm30',
'completed_ts': '2014-09-25T01:42:00.123',
'created_ts': '2014-09-25T01:41:00.123',
'durations': [5.7, 31.5],
'exit_codes': [0, 0],
'failure': failure,
'id': '148aa78d7aa%02d00' % i,
'internal_failure': internal_failure,
'isolated_out': {
'isolated': 'abc123',
'isolatedserver': 'https://isolateserver.appspot.com',
'namespace': 'default-gzip',
'view_url': 'blah',
},
'modified_ts': '2014-09-25 01:42:00',
'name': 'heartbeat-canary-2014-09-25_01:41:55-os=Windows',
'outputs': [
'Heart beat succeeded on win32.\n',
'Foo',
],
'outputs_ref': {
'view_url': 'blah',
},
'started_ts': '2014-09-25T01:42:11.123',
'state': state.State.COMPLETED,
'try_number': 1,
'user': 'unknown',
} for i in xrange(shards)
],
})