Use new get_rpc_client API from oslo.messaging
Use the new API that is consistent with the existing API instead of instantiating the client class directly. This was introduced in release 14.1.0 here [1] and added into oslo.messaging here [2] [1] https://review.opendev.org/c/openstack/requirements/+/869340 [2] https://review.opendev.org/c/openstack/oslo.messaging/+/862419 Change-Id: Ibb44b96108ef6029fe693d0765d59aa15570107e
This commit is contained in:
parent
196aace962
commit
a6bc01a7f9
|
@ -17,7 +17,7 @@ oslo.db>=6.0.0 # Apache-2.0
|
|||
oslo.i18n>=3.20.0 # Apache-2.0
|
||||
oslo.log>=3.36.0 # Apache-2.0
|
||||
oslo.reports>=1.18.0 # Apache-2.0
|
||||
oslo.messaging>=5.29.0 # Apache-2.0
|
||||
oslo.messaging>=14.1.0 # Apache-2.0
|
||||
oslo.middleware>=3.31.0 # Apache-2.0
|
||||
oslo.policy>=3.6.0 # Apache-2.0
|
||||
oslo.serialization>=2.25.0 # Apache-2.0
|
||||
|
|
|
@ -126,7 +126,8 @@ def get_rpc_client(topic, server, serializer=None):
|
|||
if serializer is None:
|
||||
serializer = JsonPayloadSerializer()
|
||||
serializer = RequestContextSerializer(serializer)
|
||||
return messaging.RPCClient(TRANSPORT, target, serializer=serializer)
|
||||
return messaging.get_rpc_client(
|
||||
TRANSPORT, target, serializer=serializer)
|
||||
|
||||
|
||||
def get_notifier(publisher_id):
|
||||
|
|
|
@ -69,61 +69,68 @@ class TestUtilFunctions(testtools.TestCase):
|
|||
messaging.TRANSPORT, x_target, [x_endpoint],
|
||||
executor='eventlet', serializer=x_context_serializer)
|
||||
|
||||
@mock.patch("oslo_messaging.RPCClient")
|
||||
@mock.patch("oslo_messaging.Target")
|
||||
@mock.patch("senlin.common.messaging.RequestContextSerializer")
|
||||
@mock.patch("senlin.common.messaging.JsonPayloadSerializer")
|
||||
@mock.patch("oslo_messaging.Target")
|
||||
def test_get_rpc_client(self, mock_target, mock_json_serializer,
|
||||
mock_context_serializer,
|
||||
mock_rpc_client):
|
||||
x_topic = mock.Mock()
|
||||
x_server = mock.Mock()
|
||||
x_target = mock.Mock()
|
||||
mock_target.return_value = x_target
|
||||
x_json_serializer = mock.Mock()
|
||||
mock_json_serializer.return_value = x_json_serializer
|
||||
x_context_serializer = mock.Mock()
|
||||
mock_context_serializer.return_value = x_context_serializer
|
||||
x_rpc_client = mock.Mock()
|
||||
mock_rpc_client.return_value = x_rpc_client
|
||||
@mock.patch("oslo_messaging.get_rpc_client")
|
||||
def test_get_rpc_client(self, mock_rpc_client, mock_json_serializer,
|
||||
mock_context_serializer, mock_target):
|
||||
topic = 'fake'
|
||||
client = mock.Mock()
|
||||
context = mock.Mock()
|
||||
server = mock.Mock()
|
||||
serializer = mock.Mock()
|
||||
target = mock.Mock()
|
||||
|
||||
res = messaging.get_rpc_client(x_topic, x_server)
|
||||
mock_context_serializer.return_value = context
|
||||
mock_json_serializer.return_value = serializer
|
||||
mock_rpc_client.return_value = client
|
||||
mock_target.return_value = target
|
||||
|
||||
result = messaging.get_rpc_client(topic, server)
|
||||
|
||||
self.assertEqual(x_rpc_client, res)
|
||||
mock_target.assert_called_once_with(
|
||||
topic=x_topic, server=x_server,
|
||||
version=consts.RPC_API_VERSION_BASE)
|
||||
mock_json_serializer.assert_called_once_with()
|
||||
mock_context_serializer.assert_called_once_with(x_json_serializer)
|
||||
mock_rpc_client.assert_called_once_with(
|
||||
messaging.TRANSPORT, x_target, serializer=x_context_serializer)
|
||||
None, target, serializer=context
|
||||
)
|
||||
mock_target.assert_called_once_with(
|
||||
topic=topic, server=server, version=consts.RPC_API_VERSION_BASE
|
||||
)
|
||||
mock_json_serializer.assert_called_once_with()
|
||||
mock_context_serializer.assert_called_once_with(serializer)
|
||||
|
||||
@mock.patch("oslo_messaging.RPCClient")
|
||||
self.assertEqual(client, result)
|
||||
|
||||
@mock.patch("oslo_messaging.Target")
|
||||
@mock.patch("senlin.common.messaging.RequestContextSerializer")
|
||||
@mock.patch("senlin.common.messaging.JsonPayloadSerializer")
|
||||
@mock.patch("oslo_messaging.Target")
|
||||
def test_get_rpc_client_with_serializer(self, mock_target,
|
||||
@mock.patch("oslo_messaging.get_rpc_client")
|
||||
def test_get_rpc_client_with_serializer(self, mock_rpc_client,
|
||||
mock_json_serializer,
|
||||
mock_context_serializer,
|
||||
mock_rpc_client):
|
||||
x_topic = mock.Mock()
|
||||
x_server = mock.Mock()
|
||||
x_target = mock.Mock()
|
||||
x_serializer = mock.Mock()
|
||||
mock_target.return_value = x_target
|
||||
x_context_serializer = mock.Mock()
|
||||
mock_context_serializer.return_value = x_context_serializer
|
||||
x_rpc_client = mock.Mock()
|
||||
mock_rpc_client.return_value = x_rpc_client
|
||||
mock_target):
|
||||
topic = 'fake'
|
||||
client = mock.Mock()
|
||||
context = mock.Mock()
|
||||
custom_serializer = mock.Mock(name='custom')
|
||||
server = mock.Mock()
|
||||
target = mock.Mock()
|
||||
|
||||
res = messaging.get_rpc_client(x_topic, x_server,
|
||||
serializer=x_serializer)
|
||||
mock_context_serializer.return_value = context
|
||||
mock_json_serializer.return_value = custom_serializer
|
||||
mock_rpc_client.return_value = client
|
||||
mock_target.return_value = target
|
||||
|
||||
result = messaging.get_rpc_client(
|
||||
topic, server, serializer=custom_serializer
|
||||
)
|
||||
|
||||
self.assertEqual(x_rpc_client, res)
|
||||
mock_target.assert_called_once_with(
|
||||
topic=x_topic, server=x_server,
|
||||
version=consts.RPC_API_VERSION_BASE)
|
||||
self.assertEqual(0, mock_json_serializer.call_count)
|
||||
mock_context_serializer.assert_called_once_with(x_serializer)
|
||||
mock_rpc_client.assert_called_once_with(
|
||||
messaging.TRANSPORT, x_target, serializer=x_context_serializer)
|
||||
None, target, serializer=context
|
||||
)
|
||||
mock_target.assert_called_once_with(
|
||||
topic=topic, server=server, version=consts.RPC_API_VERSION_BASE
|
||||
)
|
||||
mock_json_serializer.assert_not_called()
|
||||
mock_context_serializer.assert_called_once_with(custom_serializer)
|
||||
|
||||
self.assertEqual(client, result)
|
||||
|
|
Loading…
Reference in New Issue