wrong additions

test-for-2850

few fixes

mock testing

Typo error
This commit is contained in:
kira0204 2018-03-06 05:44:05 +05:30
parent c6802ba034
commit be50f3f481
2 changed files with 22 additions and 3 deletions

View File

@ -1,5 +1,5 @@
"""
This module manges and invokes typed commands.
This module manages and invokes typed commands.
"""
import inspect
import types
@ -131,8 +131,13 @@ class CommandManager(mitmproxy.types._CommandBase):
for i in dir(addon):
if not i.startswith("__"):
o = getattr(addon, i)
if hasattr(o, "command_path"):
self.add(o.command_path, o)
try:
is_command = hasattr(o, "command_path")
except Exception:
pass # hasattr may raise if o implements __getattr__.
else:
if is_command:
self.add(o.command_path, o)
def add(self, path: str, func: typing.Callable):
self.commands[path] = Command(self, path, func)

View File

@ -1,4 +1,5 @@
import typing
from unittest import mock
from mitmproxy import command
from mitmproxy import flow
from mitmproxy import exceptions
@ -309,6 +310,19 @@ class TDec:
pass
def test_collect_commands():
"""
This tests for the error thrown by hasattr()
"""
with mock.patch("mitmproxy.command.hasattr") as mock_hasattr:
mock_hasattr.return_value = False
with taddons.context() as tctx:
mock_hasattr.side_effect = OSError
c = command.CommandManager(tctx.master)
a = TDec()
c.collect_commands(a)
def test_decorator():
with taddons.context() as tctx:
c = command.CommandManager(tctx.master)