OLD | NEW |
| (Empty) |
1 | |
2 from twisted.internet import reactor | |
3 from buildbot.process.buildstep import BuildStep, LoggingBuildStep | |
4 from buildbot.process.buildstep import LoggedRemoteCommand | |
5 from buildbot.status.builder import SUCCESS, FAILURE | |
6 | |
7 # these classes are used internally by buildbot unit tests | |
8 | |
9 class Dummy(BuildStep): | |
10 """I am a dummy no-op step, which runs entirely on the master, and simply | |
11 waits 5 seconds before finishing with SUCCESS | |
12 """ | |
13 | |
14 haltOnFailure = True | |
15 flunkOnFailure = True | |
16 name = "dummy" | |
17 | |
18 def __init__(self, timeout=5, **kwargs): | |
19 """ | |
20 @type timeout: int | |
21 @param timeout: the number of seconds to delay before completing | |
22 """ | |
23 BuildStep.__init__(self, **kwargs) | |
24 self.addFactoryArguments(timeout=timeout) | |
25 self.timeout = timeout | |
26 self.timer = None | |
27 | |
28 def start(self): | |
29 self.step_status.setText(["delay", "%s secs" % self.timeout]) | |
30 self.timer = reactor.callLater(self.timeout, self.done) | |
31 | |
32 def interrupt(self, reason): | |
33 if self.timer: | |
34 self.timer.cancel() | |
35 self.timer = None | |
36 self.step_status.setText(["delay", "interrupted"]) | |
37 self.finished(FAILURE) | |
38 | |
39 def done(self): | |
40 self.finished(SUCCESS) | |
41 | |
42 class FailingDummy(Dummy): | |
43 """I am a dummy no-op step that 'runs' master-side and finishes (with a | |
44 FAILURE status) after 5 seconds.""" | |
45 | |
46 name = "failing dummy" | |
47 | |
48 def start(self): | |
49 self.step_status.setText(["boom", "%s secs" % self.timeout]) | |
50 self.timer = reactor.callLater(self.timeout, self.done) | |
51 | |
52 def done(self): | |
53 self.finished(FAILURE) | |
54 | |
55 class RemoteDummy(LoggingBuildStep): | |
56 """I am a dummy no-op step that runs on the remote side and | |
57 simply waits 5 seconds before completing with success. | |
58 See L{buildbot.slave.commands.DummyCommand} | |
59 """ | |
60 | |
61 haltOnFailure = True | |
62 flunkOnFailure = True | |
63 name = "remote dummy" | |
64 | |
65 def __init__(self, timeout=5, **kwargs): | |
66 """ | |
67 @type timeout: int | |
68 @param timeout: the number of seconds to delay | |
69 """ | |
70 LoggingBuildStep.__init__(self, **kwargs) | |
71 self.addFactoryArguments(timeout=timeout) | |
72 self.timeout = timeout | |
73 self.description = ["remote", "delay", "%s secs" % timeout] | |
74 | |
75 def describe(self, done=False): | |
76 return self.description | |
77 | |
78 def start(self): | |
79 args = {'timeout': self.timeout} | |
80 cmd = LoggedRemoteCommand("dummy", args) | |
81 self.startCommand(cmd) | |
82 | |
83 class Wait(LoggingBuildStep): | |
84 """I start a command on the slave that waits for the unit test to | |
85 tell it when to finish. | |
86 """ | |
87 | |
88 name = "wait" | |
89 def __init__(self, handle, **kwargs): | |
90 LoggingBuildStep.__init__(self, **kwargs) | |
91 self.addFactoryArguments(handle=handle) | |
92 self.handle = handle | |
93 | |
94 def describe(self, done=False): | |
95 return ["wait: %s" % self.handle] | |
96 | |
97 def start(self): | |
98 args = {'handle': (self.handle, self.build.reason)} | |
99 cmd = LoggedRemoteCommand("dummy.wait", args) | |
100 self.startCommand(cmd) | |
OLD | NEW |