| # 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'], |
| }, |
| }) |
| ) |
| ) |