def test_updating_slave_to_setup_completed_state_should_tell_build_to_begin_subjob_execution(self): master = ClusterMaster() fake_build = MagicMock() master.get_build = MagicMock(return_value=fake_build) slave_url = 'raphael.turtles.gov' master.connect_slave(slave_url, 10) slave = master.get_slave(slave_url=slave_url) master.handle_slave_state_update(slave, SlaveState.SETUP_COMPLETED) fake_build.begin_subjob_executions_on_slave.assert_called_once_with(slave)
def test_updating_slave_to_setup_completed_state_should_tell_build_to_begin_subjob_execution(self): master = ClusterMaster() fake_build = MagicMock(spec_set=Build) master.get_build = MagicMock(return_value=fake_build) slave_url = 'raphael.turtles.gov' master.connect_slave(slave_url, 10) slave = master.get_slave(slave_url=slave_url) mock_scheduler = self.mock_scheduler_pool.get(fake_build) master.handle_slave_state_update(slave, SlaveState.SETUP_COMPLETED) mock_scheduler.begin_subjob_executions_on_slave.assert_called_once_with(slave)
def test_updating_slave_to_setup_completed_state_should_tell_build_to_begin_subjob_execution(self): master = ClusterMaster() slave_registry = SlaveRegistry.singleton() fake_build = MagicMock(spec_set=Build) master.get_build = MagicMock(return_value=fake_build) slave_url = 'raphael.turtles.gov' master.connect_slave(slave_url, 10) slave = slave_registry.get_slave(slave_url=slave_url) mock_scheduler = self.mock_scheduler_pool.get(fake_build) scheduler_begin_event = Event() mock_scheduler.begin_subjob_executions_on_slave.side_effect = lambda **_: scheduler_begin_event.set() master.handle_slave_state_update(slave, SlaveState.SETUP_COMPLETED) was_called = scheduler_begin_event.wait(timeout=5) self.assertTrue(was_called, 'scheduler.begin_subjob_executions_on_slave should be called in response ' 'to slave setup completing.') _, call_kwargs = mock_scheduler.begin_subjob_executions_on_slave.call_args self.assertEqual(call_kwargs.get('slave'), slave)