# Copyright 2014 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. import hashlib from recipe_engine import recipe_test_api class GclientTestApi(recipe_test_api.RecipeTestApi): def diff_deps_test_data(self, files): return self.m.raw_io.stream_output( '\n'.join(['10>%s' % fname for fname in files])) def output_json(self, projects): """Deterministically synthesize json.output test data for gclient's --output-json option. Args: projects - a list of project paths (e.g. ['src', 'src/dependency']) """ # TODO(iannucci): Account for parent_got_revision_mapping. Right now the # synthesized json output from this method will always use # gen_revision(project), but if parent_got_revision and its ilk are # specified, we should use those values instead. return self.m.json.output({ 'solutions': dict( (p+'/', {'revision': self.gen_revision(p)}) for p in projects ) }) @staticmethod def gen_revision(project): """Hash project to bogus deterministic revision values.""" h = hashlib.sha1(project) return h.hexdigest()