Cos*_*mer 5 python unit-testing patch mocking flask
我有一个名为 api 的 Python Flask 蓝图,其中有一个名为 utils 的文件,其中包含一个我试图模拟的函数。该 utils 文件的路径是app/api/utils.py,而我试图模拟的函数是is_file_writeable().
我正在对位于 的蓝图中的路线进行测试app/api/configs.py。在 中configs.py,我按如下方式导入函数:
from app.api.utils import is_file_writeable
Run Code Online (Sandbox Code Playgroud)
我尝试了以下补丁装饰器:
@patch('app.api.configs.is_file_writeable', return_value=False)
Run Code Online (Sandbox Code Playgroud)
和
@patch('app.api.utils.is_file_writeable', return_value=False)
Run Code Online (Sandbox Code Playgroud)
两者分别返回以下错误:
AttributeError: 'Blueprint' 对象没有属性 'configs'
和
AttributeError: 'Blueprint' 对象没有属性 'utils'
关于为什么我收到导入错误的任何想法?
当我遇到这个问题时,这是因为它api是一个蓝图。嘲笑者不是在configs.py文件夹下寻找 ,而是在寻找蓝图中调用的东西。apiutilsapi
为了解决这个问题,我导入了 py 文件并直接修补了对象:
from app.api import utils
@patch.object(utils, 'is_file_writeable', lambda x: False)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
944 次 |
| 最近记录: |