mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-01-17 19:03:42 +01:00
pyln-client: send proper JSONRPC2 errors on failed call
Changelog-Added: pyln now sends proper error on bad calls to plugin methods Co-Authored-By: Sergi Delgado Segura <sergi.delgado.s@gmail.com>
This commit is contained in:
parent
813356b88c
commit
af76bce0fa
@ -19,6 +19,12 @@ def hello(plugin, name="world"):
|
||||
return s
|
||||
|
||||
|
||||
@plugin.method("bye")
|
||||
def bye(plugin, name, **kwargs):
|
||||
"""This methods requires {name} to be set by the caller !"""
|
||||
return "Bye {}".format(name)
|
||||
|
||||
|
||||
@plugin.init()
|
||||
def init(options, configuration, plugin, **kwargs):
|
||||
plugin.log("Plugin helloworld.py initialized")
|
||||
|
@ -83,9 +83,12 @@ class Request(dict):
|
||||
self._write_result({
|
||||
'jsonrpc': '2.0',
|
||||
'id': self.id,
|
||||
"error": "Error while processing {method}: {exc}".format(
|
||||
method=self.method, exc=repr(exc)
|
||||
),
|
||||
"error": {
|
||||
"code": -32600, # "Invalid Request"
|
||||
"message": "Error while processing {method}: {exc}"
|
||||
.format(method=self.method, exc=str(exc)),
|
||||
# 'data' field "may be omitted."
|
||||
},
|
||||
})
|
||||
|
||||
def _write_result(self, result):
|
||||
|
@ -180,6 +180,11 @@ def test_rpc_passthrough(node_factory):
|
||||
with pytest.raises(RpcError):
|
||||
n.rpc.fail()
|
||||
|
||||
# Try to call a method without enough arguments
|
||||
with pytest.raises(RpcError, match="processing bye: missing a required"
|
||||
" argument"):
|
||||
n.rpc.bye()
|
||||
|
||||
|
||||
def test_plugin_dir(node_factory):
|
||||
"""--plugin-dir works"""
|
||||
|
Loading…
Reference in New Issue
Block a user