def patch(self, orig, replace):
if not hasattr(self, '__patches'):
self.__patches = []
self.addCleanup(unpatch, self)
f = inspect.stack()[1][0]
parts = orig.split('.')
v = f.f_globals.copy()
v.update(f.f_locals)
orig = v[parts[0]]
for part in parts[1:-1]:
orig = getattr(orig, part)
to_replace = getattr(orig, parts[-1])
self.__patches.append((orig, parts[-1], to_replace))
setattr(orig, parts[-1], replace)
评论列表
文章目录