def mock(self, module, name, return_value=None):
if (module, name) not in self.mocks:
self.mocks[(module, name)] = getattr(module or self.module, name, None)
original_value = self.mocks[(module, name)]
if original_value is None or callable(original_value):
self = weakref.proxy(self)
module_name = module.__name__ if hasattr(module, '__name__') else type(module).__name__
call_name = "{}.{}".format(module_name, name) if module else name
def _mock(*attrs, **kwargs):
self.calls[call_name].append((attrs, kwargs))
return return_value(*attrs, **kwargs) if callable(return_value) else return_value
setattr(module or self.module, name, _mock)
else:
setattr(module or self.module, name, return_value)
评论列表
文章目录