Exemplo n.º 1
0
    def test_update_reserved_blank(self):
        """Test that updates to the reserved file are obeyed, and that calls to
        the _nextFast functions pick it up."""
        reservedFile = tempfile.NamedTemporaryFile()
        reservedFile.write("5")
        reservedFile.flush()
        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 = 61
            self.assertEquals(buildbotcustom.misc.nReservedFastSlaves, 0)

            # Only one fast slave available, but all 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 is None)
            self.assertEquals(buildbotcustom.misc.nReservedFastSlaves, 5)

            # Empty out reserved slaves file
            reservedFile.seek(0)
            reservedFile.write("")
            reservedFile.truncate()
            reservedFile.flush()
            time_method.return_value = buildbotcustom.misc._checkedReservedSlaveFile + 61

            # Only one fast slave available, but none are reserved
            available_slaves = [s for s in self.slaves if s.slave.slavename == "fast2"]

            # Check that the regular function gets it
            slave = _nextFastSlave(self.builder, available_slaves, only_fast=True)
            self.assertEquals(buildbotcustom.misc.nReservedFastSlaves, 0)
            self.assert_(slave.slave.slavename == "fast2")
Exemplo n.º 2
0
    def test_update_reserved_blank(self):
        """Test that updates to the reserved file are obeyed, and that calls to
        the _nextFast functions pick it up."""
        reservedFile = tempfile.NamedTemporaryFile()
        reservedFile.write('5')
        reservedFile.flush()
        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 = 61
            self.assertEquals(buildbotcustom.misc.nReservedFastSlaves, 0)

            # Only one fast slave available, but all 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 is None)
            self.assertEquals(buildbotcustom.misc.nReservedFastSlaves, 5)

            # Empty out reserved slaves file
            reservedFile.seek(0)
            reservedFile.write('')
            reservedFile.truncate()
            reservedFile.flush()
            time_method.return_value = buildbotcustom.misc._checkedReservedSlaveFile + 61

            # Only one fast slave available, but none are reserved
            available_slaves = [s for s in self.slaves if s.slave.slavename == 'fast2']

            # Check that the regular function gets it
            slave = _nextFastSlave(self.builder, available_slaves, only_fast=True)
            self.assertEquals(buildbotcustom.misc.nReservedFastSlaves, 0)
            self.assert_(slave.slave.slavename == 'fast2')
Exemplo n.º 3
0
    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")
Exemplo n.º 4
0
    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_nextFastSlave_allslow(self):
        """Test that _nextFastSlave works if the builder is configured with
        just slow slaves. This handles the case for platforms that don't have a
        fast/slow distinction."""
        self.builder.slaves = self.slow_slaves

        slave = _nextFastSlave(self.builder, self.slow_slaves, only_fast=True)
        self.assert_(slave.slavename.startswith('slow'))
Exemplo n.º 6
0
    def test_nextFastSlave_reserved(self):
        """Test that _nextFastSlave returns None if there's one slave
        reserved."""
        buildbotcustom.misc.nReservedFastSlaves = 1

        # Only one fast slave available
        available_slaves = [s for s in self.slaves if s.slave.slavename == "fast2"]
        slave = _nextFastSlave(self.builder, available_slaves)
        self.assert_(slave is None)
Exemplo n.º 7
0
    def test_nextFastSlave_allslow(self):
        """Test that _nextFastSlave works if the builder is configured with
        just slow slaves. This handles the case for platforms that don't have a
        fast/slow distinction."""
        buildbotcustom.misc.nReservedFastSlaves = 1
        self.builder.slaves = self.slow_slaves

        slave = _nextFastSlave(self.builder, self.slow_slaves, only_fast=True)
        self.assert_(slave.slavename.startswith('slow'))
Exemplo n.º 8
0
    def test_nextFastSlave_reserved(self):
        """Test that _nextFastSlave returns None if there's one slave
        reserved."""
        buildbotcustom.misc.nReservedFastSlaves = 1

        # Only one fast slave available
        available_slaves = [s for s in self.slaves if s.slave.slavename == 'fast2']
        slave = _nextFastSlave(self.builder, available_slaves)
        self.assert_(slave is None)
 def test_nextFastSlave_OnlySlowAvail_notOnlyFast(self):
     """Test that _nextFastSlave and returns a slow slave when only slow
     slaves are available and only_fast is False."""
     slave = _nextFastSlave(self.builder, self.slow_slaves, only_fast=False)
     self.assert_(slave.slave.slavename.startswith("slow"))
 def test_nextFastSlave_OnlySlowAvail(self):
     """Test that _nextFastSlave returns None slave when only slow slaves
     are available, and only_fast is True."""
     slave = _nextFastSlave(self.builder, self.slow_slaves, only_fast=True)
     self.assert_(slave is None)
 def test_nextFastSlave_AllAvail(self):
     """Test that _nextFastSlave returns a fast
     slave when all slaves are available."""
     slave = _nextFastSlave(self.builder, self.slaves, only_fast=True)
     self.assert_(slave.slave.slavename.startswith("fast"))