def test_should_work_for_instance_method_with_kwargs(): decorator = build_instance_method_decorator(logger=TestLogger()) class Foo(object): @decorator() def handle(self, arg1): self.logger.info('Bar') return arg1 foo = Foo() foo.handle(arg1='1') _assert_extra(decorator.logger.logs[0].extra, { 'tag': None, 'params': {'arg1': '1'}, 'method': 'handle'}) assert decorator.logger.logs[1].msg == 'Bar'
'version': 1, 'formatters': { 'simple': { 'format': '%(levelname)s|%(module)s|%(message)s|%(method)s|'}}, 'handlers': { 'stdout': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'simple'}}, 'loggers': { 'default': { 'handlers': ['stdout'], 'level': 'DEBUG'}}}) logger = logging.getLogger('default') logged = build_instance_method_decorator(logger=logger) SCHEMA = { 'type': 'object', 'properties': { 'baz': {'type': 'integer'}, 'qux': {'type': 'string'}, } } class Foo(object): @logged() @validated(SCHEMA) def bar(self, baz, qux=''):