def test_update_reserved(self): """Test that updates to the reserved file are obeyed, and that calls to the _nextFast functions pick it up.""" reservedFile = tempfile.NamedTemporaryFile() buildbotcustom.misc._checkedReservedSlaveFile = 0 # Need to fake out time.time with mock.patch.object(time, "time") as time_method: setReservedFileName(reservedFile.name) time_method.return_value = 0 self.assertEquals(buildbotcustom.misc.nReservedFastSlaves, 0) # Only one fast slave available, but none are reserved yet available_slaves = [s for s in self.slaves if s.slave.slavename == "fast2"] slave = _nextFastSlave(self.builder, available_slaves) self.assert_(slave.slave.slavename == "fast2") # Reserve 1 slave reservedFile.write("1") reservedFile.flush() time_method.return_value = 61 # Only one fast slave available, but 1 is reserved available_slaves = [s for s in self.slaves if s.slave.slavename == "fast2"] # Check that the regular function doesn't get it slave = _nextFastSlave(self.builder, available_slaves, only_fast=True) self.assertEquals(buildbotcustom.misc.nReservedFastSlaves, 1) self.assert_(slave is None) # But our reserved function now does slave = _nextFastReservedSlave(self.builder, available_slaves, only_fast=True) self.assert_(slave.slave.slavename == "fast2")
def test_update_reserved(self): """Test that updates to the reserved file are obeyed, and that calls to the _nextFast functions pick it up.""" reservedFile = tempfile.NamedTemporaryFile() buildbotcustom.misc._checkedReservedSlaveFile = 0 # Need to fake out time.time with mock.patch.object(time, 'time') as time_method: setReservedFileName(reservedFile.name) time_method.return_value = 0 self.assertEquals(buildbotcustom.misc.nReservedFastSlaves, 0) # Only one fast slave available, but none are reserved yet available_slaves = [s for s in self.slaves if s.slave.slavename == 'fast2'] slave = _nextFastSlave(self.builder, available_slaves) self.assert_(slave.slave.slavename == 'fast2') # Reserve 1 slave reservedFile.write('1') reservedFile.flush() time_method.return_value = 61 # Only one fast slave available, but 1 is reserved available_slaves = [s for s in self.slaves if s.slave.slavename == 'fast2'] # Check that the regular function doesn't get it slave = _nextFastSlave(self.builder, available_slaves, only_fast=True) self.assertEquals(buildbotcustom.misc.nReservedFastSlaves, 1) self.assert_(slave is None) # But our reserved function now does slave = _nextFastReservedSlave(self.builder, available_slaves, only_fast=True) self.assert_(slave.slave.slavename == 'fast2')
def test_nextFastReservedSlave_reserved(self): """Test that _nextFastReservedSlave returns a fast slave if there's one reserved.""" buildbotcustom.misc.nReservedFastSlaves = 1 # Only one fast slave available available_slaves = [s for s in self.slaves if s.slave.slavename == "fast2"] slave = _nextFastReservedSlave(self.builder, available_slaves) self.assert_(slave.slave.slavename == "fast2")
def test_nextFastReservedSlave_reserved(self): """Test that _nextFastReservedSlave returns a fast slave if there's one reserved.""" buildbotcustom.misc.nReservedFastSlaves = 1 # Only one fast slave available available_slaves = [s for s in self.slaves if s.slave.slavename == 'fast2'] slave = _nextFastReservedSlave(self.builder, available_slaves) self.assert_(slave.slave.slavename == "fast2")