def startMaster(self, sch, startSlave=False, wantPBListener=False): BuildmasterConfig['schedulers'] = [sch] self.sch = sch if wantPBListener: self.pblistener = client.PBListener(0) BuildmasterConfig['status'] = [self.pblistener] else: BuildmasterConfig['status'] = [] # create the master and set its config m = self.master = master.BuildMaster(self.basedir, self.configfile) m.config = config.MasterConfig.loadConfig( self.basedir, self.configfile) # set up the db yield m.db.setup(check_version=False) yield m.db.model.create() # stub out m.db.setup since it was already called above m.db.setup = lambda: None # mock reactor.stop (which trial *really* doesn't # like test code to call!) mock_reactor = mock.Mock(spec=reactor) mock_reactor.callWhenRunning = reactor.callWhenRunning # start the service yield m.startService(_reactor=mock_reactor) self.failIf(mock_reactor.stop.called, "startService tried to stop the reactor; check logs") # hang out until the scheduler has registered its PB port if isinstance(self.sch, trysched.Try_Userpass): def getSchedulerPort(): if not self.sch.registrations: return self.serverPort = self.sch.registrations[0].getPort() log.msg("Scheduler registered at port %d" % self.serverPort) return True yield waitFor(getSchedulerPort) # now start the fake slave if startSlave: self.slave = FakeRemoteSlave(self.serverPort) yield self.slave.start()
def test_PBListener_logs(self): client.PBListener(9989) self.assertLogged('PBListener.*unused')
def test_PBListener_IStatusListener(self): pbl = client.PBListener(9989) self.failUnless(interfaces.IStatusReceiver.providedBy(pbl))
request.postpath) self.site.resource = RewriterResource(rootResource, rewriteXSL) waterfall = MyWaterfall(http_port=8010, css="buildbot.css", results_directory="/home/buildresults/results/", allowForce=False) allBuildsEmail = mail.MailNotifier( fromaddr="*****@*****.**", extraRecipients=["*****@*****.**"], sendToInterestedUsers=False) breakageEmail = mail.MailNotifier( fromaddr="*****@*****.**", extraRecipients=["*****@*****.**"], lookup=mail.Domain("opensource.apple.com"), mode="breakage") IRC = words.IRC(host="irc.freenode.net", nick="webkit-build", channels=["#webkit-build"], announceAllBuilds=True) PBClient = client.PBListener("tcp:9988", "statusClient", "clientpw") def getStatusListeners(): return [waterfall, allBuildsEmail, breakageEmail, IRC, PBClient]