File tree Expand file tree Collapse file tree 2 files changed +21
-2
lines changed Expand file tree Collapse file tree 2 files changed +21
-2
lines changed Original file line number Diff line number Diff line change @@ -174,8 +174,8 @@ def _collect_route_arguments(self,
174174 for parameter in route_signature .parameters :
175175 parameter_type = route_signature .parameters [parameter ]
176176
177- if 'composite_metadata' == parameter or parameter_type is CompositeMetadata :
178- route_kwargs ['composite_metadata' ] = composite_metadata
177+ if 'composite_metadata' == parameter or parameter_type . annotation is CompositeMetadata :
178+ route_kwargs [parameter ] = composite_metadata
179179 else :
180180 payload_data = payload
181181
Original file line number Diff line number Diff line change @@ -141,6 +141,25 @@ async def response(composite_metadata: CompositeMetadata):
141141 assert result .metadata == b'test.path'
142142
143143
144+ async def test_routed_request_response_composite_according_to_type (lazy_pipe ):
145+ router = RequestRouter ()
146+
147+ def handler_factory ():
148+ return RoutingRequestHandler (router )
149+
150+ @router .response ('test.path' )
151+ async def response (metadata : CompositeMetadata ):
152+ return create_response (metadata = metadata .items [0 ].tags [0 ])
153+
154+ async with lazy_pipe (
155+ client_arguments = {'metadata_encoding' : WellKnownMimeTypes .MESSAGE_RSOCKET_COMPOSITE_METADATA },
156+ server_arguments = {'handler_factory' : handler_factory }) as (server , client ):
157+ result = await client .request_response (Payload (metadata = composite (route ('test.path' ))))
158+
159+ assert result .metadata == b'test.path'
160+
161+
162+
144163async def test_routed_request_response_properly_finished_accept_payload_and_metadata (lazy_pipe ):
145164 router = RequestRouter ()
146165
You can’t perform that action at this time.
0 commit comments