pytest: test that we translate to and from Millisatoshi on plugin RPC.

We don't, but we should, like we do for normal RPC.  However, I chose
to use function annotations, rather than names-ending-in-'msat'
because it's more Pythony.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2019-02-25 14:45:56 +10:30
parent 1982c73ebc
commit c7316d7ba2
2 changed files with 42 additions and 1 deletions

23
tests/plugins/millisatoshis.py Executable file
View File

@@ -0,0 +1,23 @@
#!/usr/bin/env python3
from lightning import Plugin, Millisatoshi
plugin = Plugin(autopatch=True)
@plugin.method("echo")
def echo(plugin, msat: Millisatoshi, not_an_msat):
plugin.log("got echo for {} {} (types {} and {})"
.format(msat, not_an_msat, type(msat), type(not_an_msat)))
if not isinstance(msat, Millisatoshi):
raise TypeError("msat must be Millisatoshi not {}".format(type(msat)))
if isinstance(not_an_msat, Millisatoshi):
raise TypeError("not_an_msat must not be Millisatoshi")
plugin.log("got echo for {} (type {})".format(msat, type(msat)))
if not isinstance(msat, Millisatoshi):
raise TypeError("msat must be Millisatoshi not {}".format(type(msat)))
plugin.log("Returning {}".format(msat))
return {'echo_msat': msat}
plugin.run()