Bug 983939 - Allow to run retried jobs on spot instances. r=catlee
--- a/test/test_misc_nextslaves.py
+++ b/test/test_misc_nextslaves.py
@@ -6,17 +6,17 @@ import shutil
import mock
from twisted.trial import unittest
from buildbot.db import dbspec, connector
from buildbot.db.schema.manager import DBSchemaManager
import buildbotcustom.misc
from buildbotcustom.misc import _nextIdleSlave, _nextAWSSlave, \
- _classifyAWSSlaves, _getRetries
+ _classifyAWSSlaves, _getRetries, MAX_SPOT_RETRIES
class TestNextSlaveFuncs(unittest.TestCase):
def setUp(self):
self.slaves = slaves = []
for name in ('s1', 's2', 's3'):
slave = mock.Mock()
slave.slave.slavename = name
@@ -101,22 +101,22 @@ class TestNextAWSSlave(unittest.TestCase
f(self.builder, ondemand).slave.slavename)
self.assertEquals(_getRetries.called, 0)
# Spot instances should be preferred if there are no retries
self.assertEquals("slave-spot-001",
f(self.builder, spot + ondemand).slave.slavename)
# Otherwise ondemand should be preferred
- _getRetries.return_value = [request], 1
+ _getRetries.return_value = [request], MAX_SPOT_RETRIES + 1
self.assertEquals("slave-ec2",
f(self.builder, spot + ondemand).slave.slavename)
# Or no slave if only spot are available
- _getRetries.return_value = [request], 1
+ _getRetries.return_value = [request], MAX_SPOT_RETRIES + 1
self.assertEquals(None, f(self.builder, spot))
def test_nextAWSSlave_AWS_wait(self):
"""Test that we'll wait up to aws_wait for inhouse instances to become
available"""
f = _nextAWSSlave(aws_wait=60)
inhouse, ondemand, spot = _classifyAWSSlaves(self.slaves)
# We need to mock out _getRetries so that we don't have to create a db
@@ -137,17 +137,17 @@ class TestNextAWSSlave(unittest.TestCase
t.return_value = 61
self.assertEquals("slave-spot-001",
f(self.builder,
spot + ondemand).slave.slavename)
self.assertEquals("slave-ec2",
f(self.builder,
ondemand).slave.slavename)
- _getRetries.return_value = [request], 1
+ _getRetries.return_value = [request], MAX_SPOT_RETRIES + 1
self.assertEquals("slave-ec2",
f(self.builder,
spot + ondemand).slave.slavename)
def test_nextAWSSlave_noRequests(self):
"""Test that everything works if there are no pending requests to
getRetries"""
f = _nextAWSSlave()