Skip to content

Commit f082955

Browse files
authored
Reorder dispatch_to_response_pure params (#177)
The params that change most go last
1 parent cc737e6 commit f082955

File tree

2 files changed

+45
-44
lines changed

2 files changed

+45
-44
lines changed

jsonrpcserver/dispatcher.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -154,10 +154,10 @@ def create_requests(requests: Union[Dict, List[Dict]]) -> Union[Request, List[Re
154154

155155
def dispatch_to_response_pure(
156156
*,
157-
methods: Methods,
158-
context: Any,
159-
schema_validator: Callable,
160157
deserializer: Callable,
158+
schema_validator: Callable,
159+
context: Any,
160+
methods: Methods,
161161
request: str,
162162
) -> Union[Response, List[Response], None]:
163163
"""
@@ -169,9 +169,10 @@ def dispatch_to_response_pure(
169169
testing, not dispatch_to_response or dispatch.
170170
171171
Args:
172-
methods: Collection of methods that can be called.
172+
deserializer: Function that is used to deserialize data.
173+
schema_validator:
173174
context: Will be passed to methods as the first param if not None.
174-
deserialize: Function that is used to deserialize data.
175+
methods: Collection of methods that can be called.
175176
request: The incoming request string.
176177
177178
Returns:
@@ -219,11 +220,11 @@ def dispatch_to_response(
219220
Args:
220221
request: The JSON-RPC request string.
221222
methods: Collection of methods that can be called. If not passed, uses the
222-
internal methods object.
223+
internal, global methods object which is populated with the @method
224+
decorator.
223225
context: Will be passed to methods as the first param if not None.
224226
schema_validator:
225-
deserialize: Function that is used to deserialize data.
226-
request: The incoming request string.
227+
deserializer: Function that is used to deserialize data.
227228
228229
Returns:
229230
A Response, list of Responses or None.
@@ -232,10 +233,10 @@ def dispatch_to_response(
232233
>>> dispatch('{"jsonrpc": "2.0", "method": "ping", "id": 1}', [ping])
233234
"""
234235
return dispatch_to_response_pure(
235-
methods=global_methods if methods is None else methods,
236-
context=context,
237-
schema_validator=schema_validator,
238236
deserializer=deserializer,
237+
schema_validator=schema_validator,
238+
context=context,
239+
methods=global_methods if methods is None else methods,
239240
request=request,
240241
)
241242

tests/test_dispatcher.py

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,10 @@ def test_create_requests_batch():
122122

123123
def test_dispatch_to_response_pure():
124124
response = dispatch_to_response_pure(
125-
methods=Methods(ping),
126-
context=None,
127-
schema_validator=default_schema_validator,
128125
deserializer=default_deserializer,
126+
schema_validator=default_schema_validator,
127+
context=None,
128+
methods=Methods(ping),
129129
request='{"jsonrpc": "2.0", "method": "ping", "id": 1}',
130130
)
131131
assert isinstance(response, SuccessResponse)
@@ -135,10 +135,10 @@ def test_dispatch_to_response_pure():
135135

136136
def test_dispatch_to_response_pure_notification():
137137
response = dispatch_to_response_pure(
138-
methods=Methods(ping),
139-
context=None,
140-
schema_validator=default_schema_validator,
141138
deserializer=default_deserializer,
139+
schema_validator=default_schema_validator,
140+
context=None,
141+
methods=Methods(ping),
142142
request='{"jsonrpc": "2.0", "method": "ping"}',
143143
)
144144
assert response is None
@@ -147,10 +147,10 @@ def test_dispatch_to_response_pure_notification():
147147
def test_dispatch_to_response_pure_invalid_json():
148148
"""Unable to parse, must return an error"""
149149
response = dispatch_to_response_pure(
150-
methods=Methods(ping),
151-
context=None,
152-
schema_validator=default_schema_validator,
153150
deserializer=default_deserializer,
151+
schema_validator=default_schema_validator,
152+
context=None,
153+
methods=Methods(ping),
154154
request="{",
155155
)
156156
assert isinstance(response, ErrorResponse)
@@ -159,10 +159,10 @@ def test_dispatch_to_response_pure_invalid_json():
159159

160160
def test_dispatch_to_response_pure_notification_invalid_jsonrpc():
161161
response = dispatch_to_response_pure(
162-
methods=Methods(ping),
163-
context=None,
164-
schema_validator=default_schema_validator,
165162
deserializer=default_deserializer,
163+
schema_validator=default_schema_validator,
164+
context=None,
165+
methods=Methods(ping),
166166
request='{"jsonrpc": "0", "method": "notify"}',
167167
)
168168
assert isinstance(response, ErrorResponse)
@@ -172,10 +172,10 @@ def test_dispatch_to_response_pure_notification_invalid_jsonrpc():
172172
def test_dispatch_to_response_pure_invalid_jsonrpc():
173173
"""Invalid JSON-RPC, must return an error. (impossible to determine if notification)"""
174174
response = dispatch_to_response_pure(
175-
methods=Methods(ping),
176-
context=None,
177-
schema_validator=default_schema_validator,
178175
deserializer=default_deserializer,
176+
schema_validator=default_schema_validator,
177+
context=None,
178+
methods=Methods(ping),
179179
request="{}",
180180
)
181181
assert isinstance(response, ErrorResponse)
@@ -188,10 +188,10 @@ def foo(colour: str) -> Result:
188188
return InvalidParams()
189189

190190
response = dispatch_to_response_pure(
191-
methods=Methods(foo),
192-
context=None,
193-
schema_validator=default_schema_validator,
194191
deserializer=default_deserializer,
192+
schema_validator=default_schema_validator,
193+
context=None,
194+
methods=Methods(foo),
195195
request='{"jsonrpc": "2.0", "method": "foo", "params": ["blue"], "id": 1}',
196196
)
197197
assert isinstance(response, ErrorResponse)
@@ -203,10 +203,10 @@ def foo(colour: str, size: str):
203203
pass
204204

205205
response = dispatch_to_response_pure(
206-
methods=Methods(foo),
207-
context=None,
208-
schema_validator=default_schema_validator,
209206
deserializer=default_deserializer,
207+
schema_validator=default_schema_validator,
208+
context=None,
209+
methods=Methods(foo),
210210
request='{"jsonrpc": "2.0", "method": "foo", "params": {"colour":"blue"}, "id": 1}',
211211
)
212212
assert isinstance(response, ErrorResponse)
@@ -220,10 +220,10 @@ def not_a_result():
220220
return None
221221

222222
response = dispatch_to_response_pure(
223-
methods=Methods(not_a_result),
224-
context=None,
225-
schema_validator=default_schema_validator,
226223
deserializer=default_deserializer,
224+
schema_validator=default_schema_validator,
225+
context=None,
226+
methods=Methods(not_a_result),
227227
request='{"jsonrpc": "2.0", "method": "not_a_result", "id": 1}',
228228
)
229229
assert isinstance(response, ErrorResponse)
@@ -355,10 +355,10 @@ def test_examples_invalid_jsonrpc_batch():
355355
The examples are expecting a batch response full of error responses.
356356
"""
357357
response = dispatch_to_response_pure(
358-
methods=Methods(ping),
359-
context=None,
360-
schema_validator=default_schema_validator,
361358
deserializer=default_deserializer,
359+
schema_validator=default_schema_validator,
360+
context=None,
361+
methods=Methods(ping),
362362
request="[1]",
363363
)
364364
assert isinstance(response, ErrorResponse)
@@ -371,10 +371,10 @@ def test_examples_multiple_invalid_jsonrpc():
371371
The examples are expecting a batch response full of error responses.
372372
"""
373373
response = dispatch_to_response_pure(
374-
methods=Methods(ping),
375-
context=None,
376-
schema_validator=default_schema_validator,
377374
deserializer=default_deserializer,
375+
schema_validator=default_schema_validator,
376+
context=None,
377+
methods=Methods(ping),
378378
request="[1, 2, 3]",
379379
)
380380
assert isinstance(response, ErrorResponse)
@@ -412,10 +412,10 @@ def test_examples_mixed_requests_and_notifications():
412412
]
413413
)
414414
response = dispatch_to_response_pure(
415-
methods=methods,
416-
context=None,
417-
schema_validator=default_schema_validator,
418415
deserializer=default_deserializer,
416+
schema_validator=default_schema_validator,
417+
context=None,
418+
methods=methods,
419419
request=requests,
420420
)
421421
expected = [

0 commit comments

Comments
 (0)