mirrored from https://chromium.googlesource.com/infra/luci/recipes-py
-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathcollect.py
83 lines (74 loc) · 2.82 KB
/
collect.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# Copyright 2019 The LUCI Authors. All rights reserved.
# Use of this source code is governed under the Apache License, Version 2.0
# that can be found in the LICENSE file.
from recipe_engine import post_process
DEPS = [
'buildbucket',
'properties',
'step',
]
def RunSteps(api):
api.buildbucket.collect_build(
9016911228971028736, interval=30, step_name='collect1',
mirror_status=True,
cost=api.step.ResourceCost(memory=10))
api.buildbucket.collect_builds([9016911228971028737, 123456789012345678],
timeout=600,
raise_if_unsuccessful=api.properties.get(
'raise_if_unsuccessful', False),
mirror_status=True,
fields=['builder'],
eager=api.properties.get('eager', False))
def GenTests(api):
yield api.test('basic')
yield api.test(
'with mocking',
api.buildbucket.simulated_collect_output(
[
api.buildbucket.ci_build_message(
build_id=9016911228971028736, status='INFRA_FAILURE'),
],
step_name='collect1'),
api.buildbucket.simulated_collect_output([
api.buildbucket.try_build_message(
build_id=9016911228971028737, status='SUCCESS'),
api.buildbucket.ci_build_message(
build_id=123456789012345678, status='FAILURE'),
]),
)
yield api.test(
'with mocking and failure raising',
api.properties(raise_if_unsuccessful=True),
api.buildbucket.simulated_collect_output(
[
api.buildbucket.ci_build_message(
build_id=9016911228971028736, status='INFRA_FAILURE'),
],
step_name='collect1'),
api.buildbucket.simulated_collect_output([
api.buildbucket.try_build_message(
build_id=9016911228971028737, status='SUCCESS'),
api.buildbucket.ci_build_message(
build_id=123456789012345678, status='FAILURE'),
]),
status = 'INFRA_FAILURE',
)
yield api.test(
'with mocking and eager', api.properties(eager=True),
api.buildbucket.simulated_collect_output([
api.buildbucket.ci_build_message(
build_id=9016911228971028736, status='INFRA_FAILURE'),
],
step_name='collect1'),
api.buildbucket.simulated_collect_output([
api.buildbucket.try_build_message(
build_id=9016911228971028737, status='SUCCESS'),
]),
api.post_process(
post_process.StepCommandContains,
'buildbucket.collect.wait',
[
'bb', 'collect', '-host', 'cr-buildbucket.appspot.com',
'-interval', '60s', '-eager'
],
), api.post_process(post_process.DropExpectation))