小编Cos*_*mer的帖子

在 Python 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'

关于为什么我收到导入错误的任何想法?

python unit-testing patch mocking flask

5
推荐指数
1
解决办法
944
查看次数

如何在 Flask 蓝图中模拟导入的函数

我有一个 Flask 蓝图,它从父 Flask 模块导入一个函数,如下所示: from app_name.utils import try_ad_connection

我正在尝试模拟/打补丁,try_ad_connection但我不知道我的目标在补丁装饰器中应该是什么,因为蓝图不是一个模块,所以定位app_name.blueprint_name.try_ad_connection似乎不起作用。

如果我将导入更改为整个 utils 文件并调用try_ad_connectionby app_name.utils.try_ad_connection,我可以通过app_name.utils.try_ad_connection用作目标来修补它,但我想避免导入整个文件以仅使用一个函数。

python unit-testing mocking flask

5
推荐指数
0
解决办法
284
查看次数

标签 统计

flask ×2

mocking ×2

python ×2

unit-testing ×2

patch ×1