如何在Python中使用猴子补丁来替换特定的参数?

时间:2014-03-14 06:43:42

标签: python monkeypatching

我想使用Monkey修补程序将time.sleep(5)等所有语句更改为myServer.sleep(5)。我怎么才能意识到这一点?非常感谢你!

import test
import subprocess
import ast
import os
import time
import sys

if __name__ == "__main__":

    def insomniac(duration):
        pass  # don't sleep

    _original_sleep = time.sleep
    time.sleep = insomniac

    def dont_write(stuff):
        pass  # don't write

    _original_write = sys.stdout.write
    sys.stdout.write = dont_write

    execfile("test.py")

    exit(0)

1 个答案:

答案 0 :(得分:1)

如果您的重点是测试,即您希望确保以特定方式调用某个外部库中的可调用对象,那么有一些测试库可以帮助您解决此问题,例如{{3} }。将所有这些设置正确起来可能非常简单,因此当我编写代码时,我通常会尝试以最小化模拟使用的方式构建我的代码。

看看mock,如果你真的想让你的脚趾向这个方向走去。在此期间,您可能应该将您的测试技术正式化以使用documentation for mock。如果你迷路了,unitttest