mirror of
https://github.com/vee1e/mitmproxy.git
synced 2026-09-01 18:27:18 +00:00
parent
6dff8c58ad
commit
482043cdcf
2 changed files with 41 additions and 6 deletions
|
|
@ -1,4 +1,5 @@
|
|||
import typing
|
||||
import inspect
|
||||
from mitmproxy import command
|
||||
from mitmproxy import flow
|
||||
from mitmproxy import exceptions
|
||||
|
|
@ -55,19 +56,34 @@ class TAddon:
|
|||
pass
|
||||
|
||||
|
||||
class Unsupported:
|
||||
pass
|
||||
|
||||
|
||||
class TypeErrAddon:
|
||||
@command.command("noret")
|
||||
def noret(self):
|
||||
pass
|
||||
|
||||
@command.command("invalidret")
|
||||
def invalidret(self) -> Unsupported:
|
||||
pass
|
||||
|
||||
@command.command("invalidarg")
|
||||
def invalidarg(self, u: Unsupported):
|
||||
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())
|
||||
command.Command(cm, "noret", a.noret)
|
||||
with pytest.raises(exceptions.CommandError):
|
||||
command.Command(cm, "invalidret", a.invalidret)
|
||||
with pytest.raises(exceptions.CommandError):
|
||||
command.Command(cm, "invalidarg", a.invalidarg)
|
||||
|
||||
def test_varargs(self):
|
||||
with taddons.context() as tctx:
|
||||
|
|
@ -288,6 +304,11 @@ def test_typename():
|
|||
assert command.typename(mitmproxy.types.Path) == "path"
|
||||
assert command.typename(mitmproxy.types.Cmd) == "cmd"
|
||||
|
||||
with pytest.raises(exceptions.CommandError, match="missing type annotation"):
|
||||
command.typename(inspect._empty)
|
||||
with pytest.raises(exceptions.CommandError, match="unsupported type"):
|
||||
command.typename(None)
|
||||
|
||||
|
||||
class DummyConsole:
|
||||
@command.command("view.resolve")
|
||||
|
|
@ -339,7 +360,8 @@ class TCmds(TAttr):
|
|||
pass
|
||||
|
||||
|
||||
def test_collect_commands():
|
||||
@pytest.mark.asyncio
|
||||
async def test_collect_commands():
|
||||
"""
|
||||
This tests for the error thrown by hasattr()
|
||||
"""
|
||||
|
|
@ -349,6 +371,10 @@ def test_collect_commands():
|
|||
c.collect_commands(a)
|
||||
assert "empty" in c.commands
|
||||
|
||||
a = TypeErrAddon()
|
||||
c.collect_commands(a)
|
||||
await tctx.master.await_log("Could not load")
|
||||
|
||||
|
||||
def test_decorator():
|
||||
with taddons.context() as tctx:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue