def calculate(self, servcalc, *constraints):
return servcalc.servers_for_queue(
- [{'runtime_constraints': cdict} for cdict in constraints])
+ [{'uuid': 'zzzzz-jjjjj-{:015x}'.format(index),
+ 'runtime_constraints': cdict}
+ for index, cdict in enumerate(constraints)])
def test_empty_queue_needs_no_servers(self):
servcalc = self.make_calculator([1])
{'min_scratch_mb_per_node': 200})
self.assertEqual(6, len(servlist))
+ def test_job_requesting_max_nodes_accepted(self):
+ servcalc = self.make_calculator([1], max_nodes=4)
+ servlist = self.calculate(servcalc, {'min_nodes': 4})
+ self.assertEqual(4, len(servlist))
+
+ def test_cheapest_size(self):
+ servcalc = self.make_calculator([2, 4, 1, 3])
+ self.assertEqual(testutil.MockSize(1), servcalc.cheapest_size())
+
class JobQueueMonitorActorTestCase(testutil.RemotePollLoopActorTestMixin,
unittest.TestCase):
def test_subscribers_get_server_lists(self):
self.build_monitor([{'items': [1, 2]}], self.MockCalculator())
- self.monitor.subscribe(self.subscriber)
- self.wait_for_call(self.subscriber)
+ self.monitor.subscribe(self.subscriber).get(self.TIMEOUT)
+ self.stop_proxy(self.monitor)
self.subscriber.assert_called_with([testutil.MockSize(1),
testutil.MockSize(2)])