def addSlave(self, **kwargs): """ Create a master-side slave instance and add it to the BotMaster @param **kwargs: arguments to pass to the L{BuildSlave} constructor. """ self.buildslave = buildslave.BuildSlave("testslave", "pw", **kwargs) # patch in our FakeBuilder for the regular Builder class self.patch(botmaster, 'Builder', FakeBuilder) # reconfig the master to get it set up new_config = self.master.config new_config.slavePortnum = "tcp:0:interface=127.0.0.1" new_config.slaves = [self.buildslave] new_config.builders = [ config.BuilderConfig(name='bldr', slavename='testslave', factory=mock.Mock()) ] yield self.botmaster.reconfigService(new_config) # as part of the reconfig, the slave registered with the pbmanager, so # get the port it was assigned self.port = self.buildslave.registration.getPort()
def test_load_slaves_reserved_names(self): for name in 'debug', 'change', 'status': self.cfg.load_slaves( self.filename, dict(slaves=[buildslave.BuildSlave(name, 'x')]), self.errors) self.assertConfigError(self.errors, "is reserved") self.errors.errors[:] = [] # clear out the errors
def test_load_slaves(self): sl = buildslave.BuildSlave('foo', 'x') self.cfg.load_slaves(self.filename, dict(slaves=[sl])) self.assertResults(slaves=[sl])
def test_load_slaves_friendly_name(self): sl = buildslave.BuildSlave("bot1name", "bot1passwd", max_builds=1, friendlyName="win8.1-test-machine") self.cfg.load_slaves(self.filename, dict(slaves=[sl])) self.assertResults(slaves=[sl])
def BuildSlave(cfg, name, **kwargs): password = kwargs.pop('password', None) if password is None: password = cfg.slave_password(name) return buildslave.BuildSlave(name, password, **kwargs)
def _AddSlave(self, name): self.slaves.append(buildslave.BuildSlave(str(name), PASSWORDS[name]))