python - 在 Python Flask 蓝图中模拟函数

标签 python unit-testing flask mocking patch

我有一个名为 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

我尝试了以下补丁装饰器:
@patch('app.api.configs.is_file_writeable', return_value=False)


@patch('app.api.utils.is_file_writeable', return_value=False)

两者分别返回以下错误:

AttributeError: 'Blueprint' object has no attribute 'configs'





AttributeError: 'Blueprint' object has no attribute 'utils'



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

最佳答案

当我遇到这个问题时,是因为 api是一个蓝图。而不是寻找 configs.py文件夹下api mock 者正在寻找一种叫做 utils 的东西在蓝图中api .

为了解决这个问题,我导入了 py 文件并直接修补了对象:

from app.api import utils

@patch.object(utils, 'is_file_writeable', lambda x: False)

关于python - 在 Python Flask 蓝图中模拟函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35616545/

相关文章:

python - python 3.7 有没有办法手动清除内存?

javascript - 如何在 react 组件中使用 Jest 和 enzyme 来检查函数是否有参数而不检查其值?

xcode - Xcode 5 更新后的 RunUnitTests 错误

python - 如何修复 ""属性错误: 'NoneType' object has no attribute 'app'

docker - 从本地Docker设置到Kubernetes生产

python - selenium.common.exceptions.WebDriverException : Message: 'chromedriver' executable needs to be in PATH

python - 用插值填充多索引 Pandas DataFrame

java - 是否存在 JUnit 测试的标准结构?通常首选每个测试有多少个断言?

python - json数据是如何发布的?

python - 如何将 AMLS 连接到 ADLS Gen 2?