blob: bb9df32bb0dcd36bce4f39d3f0e2389a34971f7c [file] [log] [blame]
# 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'],
},
})
)
)