def test__message_received_interceptor_exception(self): e = RPCResponseEndpointUnit(routing_obj=self) e.send = Mock() e.send.return_value = sentinel.sent with patch('pyon.net.endpoint.ResponseEndpointUnit._message_received', new=Mock(side_effect=exception.IonException)): retval = e._message_received(sentinel.msg, {}) self.assertEquals(retval, sentinel.sent) e.send.assert_called_once_with(None, {'status_code': -1, 'error_message':'', 'conv-id': '', 'conv-seq': 2, 'protocol':''})
def test__message_received_interceptor_exception(self): e = RPCResponseEndpointUnit(routing_obj=self) e.send = Mock() e.send.return_value = sentinel.sent with patch('pyon.net.endpoint.ResponseEndpointUnit._message_received', new=Mock(side_effect=exception.IonException)): retval = e._message_received(sentinel.msg, {}) self.assertEquals(retval, sentinel.sent) e.send.assert_called_once_with(None, {'status_code': -1, 'error_message':'', 'conv-id': '', 'conv-seq': 2, 'protocol':'', 'performative': 'failure'})
def _message_received(self, msg, headers): """ Message received override. Sets the process' context here to be picked up by subsequent calls out by this service to other services, or replies. """ ###### ###### THIS IS WHERE THE THREAD LOCAL HEADERS CONTEXT IS SET ###### ###### # With the property _routing_call set, as is the case 95% of the time in the Process-level endpoints, # we have to set the call context from the ION process' calling greenlet, as context is greenlet-specific. # This is done in the _make_routing_call override here, passing it the context to be set. # See also IonProcessThread._control_flow. with self._process.push_context(headers): return RPCResponseEndpointUnit._message_received(self, msg, headers)
def _message_received(self, msg, headers): """ Message received override for processes. Sets the process context here to be used for subsequent calls out by this process to other processes, or replies. """ ###### ###### THIS IS WHERE THE THREAD LOCAL HEADERS CONTEXT IS SET ###### ###### # With the property _routing_call set, as is the case 95% of the time in the Process-level endpoints, # we have to set the call context from the ION process' calling greenlet, as context is greenlet-specific. # This is done in the _make_routing_call override here, passing it the context to be set. # See also IonProcessThread._control_flow. with self._process.push_context(headers): return RPCResponseEndpointUnit._message_received(self, msg, headers)
def test__message_received_interceptor_exception(self): e = RPCResponseEndpointUnit(routing_obj=self) e.send = Mock() e.send.return_value = sentinel.sent with patch( "pyon.net.endpoint.ResponseEndpointUnit._message_received", new=Mock(side_effect=exception.IonException) ): retval = e._message_received(sentinel.msg, {}) self.assertEquals(retval, sentinel.sent) e.send.assert_called_once_with( None, { "status_code": -1, "error_message": "", "conv-id": "", "conv-seq": 2, "protocol": "", "performative": "failure", }, )