Monkey Patching in Python

2012年10月21日 星期日

Monkey Patching in Python


這陣子接了一個專案

而上層又提出要增加unitest的功能

但是如果依照舊程式碼要來改的話

就會改到天荒地老

所以這邊使用了一個小撇步 Monkey Patching

透過這個方式就可以把import的Module用自己的module給替換掉

非常方便

main.py
#!/usr/bin/env python
import sys


if __name__ == '__main__':
        import os
        from test import os as fake_os
        old = os
        sys.modules['os'] = fake_os

        import os
        os.system("touch a")

        sys.modules['os'] = old



os.py
#!/usr/bin/env python

def system(cmd):
        print cmd


0 意見 :

張貼留言