我正在为办公室其他人编写的代码编写一些单元测试。Python 不是我最强的语言。虽然我已经成功完成了基本的单元测试,但 python 中的模拟却让我陷入了困境。
我需要做的是覆盖对 ConfigObj 的调用并将我自己的模拟配置/装置注入任何 ConfigObj 调用中。
设置.py
from configobj import ConfigObj
config = ConfigObj('/etc/myapp/config')
Run Code Online (Sandbox Code Playgroud)
实用程序.py
from settings import config
"""lots of stuff methods using various config values."""
Run Code Online (Sandbox Code Playgroud)
我想做的是,在 utils.py 的单元测试中,为对 ConfigObj 或 settings.py 本身的任何调用注入自己。
许多模拟库希望我模拟我自己的类,但就这个应用程序而言,它没有任何显式类。
可以做到吗?还是 python 命名空间限制太严格,以至于我无法干预我正在导入的模块导入本身?
旁注:运行 2.7,所以我无法执行我在 2.5 中读到的任何技巧。