parent
1c4d3326c2
commit
d78361b041
2 changed files with 56 additions and 31 deletions
|
@ -191,7 +191,7 @@ class TestEphemeralLifecycle(EphemeralBuilderTestCase):
|
|||
realm_created.key = os.path.join('realm/', REALM_ID)
|
||||
realm_created.value = json.dumps(realm_data)
|
||||
|
||||
self.manager._handle_realm_change(realm_created)
|
||||
yield From(self.manager._handle_realm_change(realm_created))
|
||||
self.assertEqual(self.register_component_callback.call_count, 1)
|
||||
|
||||
# Ensure that we have at least one component node.
|
||||
|
@ -239,11 +239,11 @@ class TestEphemeralLifecycle(EphemeralBuilderTestCase):
|
|||
realm_deleted._prev_node.value = json.dumps({
|
||||
'realm': REALM_ID,
|
||||
'token': 'beef',
|
||||
'builder_id': '123',
|
||||
'execution_id': '123',
|
||||
'job_queue_item': self.mock_job.job_item,
|
||||
})
|
||||
|
||||
self.manager._handle_realm_change(realm_deleted)
|
||||
yield From(self.manager._handle_realm_change(realm_deleted))
|
||||
|
||||
self.unregister_component_callback.assert_called_once_with(test_component)
|
||||
|
||||
|
@ -372,6 +372,29 @@ class TestEphemeralLifecycle(EphemeralBuilderTestCase):
|
|||
self.manager._handle_job_expiration_or_delete(set_result)
|
||||
self.assertEquals(self.test_executor.stop_builder.call_count, 0)
|
||||
|
||||
@async_test
|
||||
def test_realm_expired(self):
|
||||
test_component = yield From(self._setup_job_for_managers())
|
||||
|
||||
# Send a signal to the callback that a realm has expired
|
||||
expired_result = Mock(spec=etcd.EtcdResult)
|
||||
expired_result.action = EtcdAction.EXPIRE
|
||||
expired_result.key = self.mock_job_key
|
||||
expired_result._prev_node = Mock(spec=etcd.EtcdResult)
|
||||
expired_result._prev_node.value = json.dumps({
|
||||
'realm': REALM_ID,
|
||||
'execution_id': 'foobar',
|
||||
'executor_name': 'MockExecutor',
|
||||
'job_queue_item': {'body': '{"build_uuid": "fakeid"}'},
|
||||
})
|
||||
|
||||
yield From(self.manager._handle_realm_change(expired_result))
|
||||
|
||||
# Ensure that the cleanup code for the executor was called.
|
||||
self.test_executor.stop_builder.assert_called_once_with('foobar')
|
||||
self.assertEqual(self.test_executor.stop_builder.call_count, 1)
|
||||
|
||||
|
||||
@async_test
|
||||
def test_heartbeat_response(self):
|
||||
yield From(self.assertHeartbeatWithExpiration(100, self.manager.heartbeat_period_sec * 2))
|
||||
|
|
Reference in a new issue