blob: 1d2d9724d01e8dc6a155ce2104d598c61c12b0fc [file] [log] [blame]
# Copyright 2018 The Fuchsia 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 recipe_engine import recipe_test_api
from .api import Shard, Test
class TestsharderTestApi(recipe_test_api.RecipeTestApi):
def shard(self, *args, **kwargs):
"""Creates a Shard object representing a shard."""
return Shard(*args, **kwargs)
def test(self, name, os='fuchsia', **original_kwargs):
"""Creates a Test object representing a test."""
kwargs = {
'name': name,
'os': os,
'label': '//path/to/%s:%s(//toolchain)' % (name, name),
'deps': ['path/to/a/runtime/dep'],
}
if os == 'fuchsia':
package_url = 'fuchsia-pkg://fuchsia.com/%s' % name
kwargs['package_url'] = package_url
kwargs['command'] = ['run', package_url]
kwargs['path'] = '/pkgfs/packages/path/to/%s' % name
else:
kwargs['path'] = 'host_x64/path/to/%s' % name
kwargs.update(original_kwargs)
return Test(**kwargs)
def execute(self, step_name, shards):
"""Mocks the result from a call to execute.
Args:
step_name (str): The name of the step to mock.
shards (seq[Shard]): A sequence of Shard objects that will be mocked in
as the result for an execute call.
"""
return self.step_data(
step_name,
self.m.json.output([shard.render_to_jsonish() for shard in shards]))