mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2025-02-02 00:05:27 +00:00
commands: if no explicit return type is specified, assume None
This is going to be a super common error for addon authors, so we might as well handle it.
This commit is contained in:
parent
75d30212c2
commit
6dff8c58ad
@ -58,7 +58,10 @@ class Command:
|
||||
if i.kind == i.VAR_POSITIONAL:
|
||||
self.has_positional = True
|
||||
self.paramtypes = [v.annotation for v in sig.parameters.values()]
|
||||
self.returntype = sig.return_annotation
|
||||
if sig.return_annotation == inspect._empty:
|
||||
self.returntype = None
|
||||
else:
|
||||
self.returntype = sig.return_annotation
|
||||
|
||||
def paramnames(self) -> typing.Sequence[str]:
|
||||
v = [typename(i) for i in self.paramtypes]
|
||||
|
@ -55,7 +55,20 @@ class TAddon:
|
||||
pass
|
||||
|
||||
|
||||
class TypeErrAddon:
|
||||
@command.command("noret")
|
||||
def noret(self):
|
||||
pass
|
||||
|
||||
|
||||
class TestCommand:
|
||||
def test_typecheck(self):
|
||||
with taddons.context(loadcore=False) as tctx:
|
||||
cm = command.CommandManager(tctx.master)
|
||||
a = TypeErrAddon()
|
||||
c = command.Command(cm, "noret", a.noret)
|
||||
print(c.signature_help())
|
||||
|
||||
def test_varargs(self):
|
||||
with taddons.context() as tctx:
|
||||
cm = command.CommandManager(tctx.master)
|
||||
|
Loading…
Reference in New Issue
Block a user