# 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. DEPS = [ 'gitiles', 'recipe_engine/json', 'recipe_engine/step', 'recipe_engine/path', 'recipe_engine/properties', ] def RunSteps(api): url = 'https://chromium.googlesource.com/chromium/src' for ref in api.gitiles.refs(url): _, cursor = api.gitiles.log(url, ref) if cursor: api.gitiles.log(url, ref, limit=10, cursor=cursor) api.gitiles.commit_log(url, api.properties['commit_log_hash']) data = api.gitiles.download_file(url, 'OWNERS', attempts=5) assert data == 'foobar' data = api.gitiles.download_file(url, 'NONEXISTENT', attempts=1, accept_statuses=[404]) api.gitiles.download_archive(url, api.path['start_dir'].join('archive')) try: api.gitiles.download_archive(url, api.path['start_dir'].join('archive2')) assert False # pragma: no cover except api.step.StepFailure as ex: assert '/root' in ex.gitiles_skipped_files def GenTests(api): yield ( api.test('basic') + api.properties( commit_log_hash=api.gitiles.make_hash('commit'), ) + api.step_data('refs', api.gitiles.make_refs_test_data( 'HEAD', 'refs/heads/A', 'refs/tags/B', )) + api.step_data( 'gitiles log: HEAD', api.gitiles.make_log_test_data('HEAD', cursor='deadbeaf'), ) + api.step_data( 'gitiles log: HEAD from deadbeaf', api.gitiles.make_log_test_data('HEAD'), ) + api.step_data( 'gitiles log: refs/heads/A', api.gitiles.make_log_test_data('A'), ) + api.step_data( 'gitiles log: refs/tags/B', api.gitiles.make_log_test_data('B') ) + api.step_data( 'commit log: %s' % (api.gitiles.make_hash('commit')), api.gitiles.make_commit_test_data('commit', 'C', new_files=[ 'foo/bar', 'baz/qux', ]) ) + api.step_data( 'fetch master:OWNERS', api.gitiles.make_encoded_file('foobar') ) + api.step_data( 'fetch master:NONEXISTENT', api.json.output({'value': None}) ) + api.step_data( ('download https://chromium.googlesource.com/chromium/src @ ' 'refs/heads/master (2)'), api.json.output({ 'extracted': { 'filecount': 10, 'bytes': 14925, }, 'skipped': { 'filecount': 4, 'bytes': 7192345, 'names': ['/root', '../relative', 'sneaky/../../relative'], }, }) ) )