在单元测试期间安装Flask app.config

Don*_*the 6 python unit-testing flask

处理依赖于调用代码的最佳单元处理方式是什么,而调用代码又依赖于当前应用程序的配置?

例如

代码

from flask import current_app

def some_method():
    app = current_app._get_current_object()
    value = (app.config['APP_STATIC_VAR'])*10
    return value
Run Code Online (Sandbox Code Playgroud)

test_code.py

class TestCode(unittest.TestCase):
    def test_some_method(self):
        app = create_app('app.settings.TestConfig')
        value = some_method()
        self.assertEqual(10, value)
Run Code Online (Sandbox Code Playgroud)

在执行上面的测试时,当执行app = create_app('app.settings.TestConfig')行时,出现“ RuntimeError:在应用程序上下文之外工作”错误。

在测试过程中调用app = create_app不会成功。在这种情况下,我需要在应用程序中读取配置时,进行单元测试的最佳方法是什么?

Jas*_*ger 7

当您调用 some_method() 来修复它时,您正在使用在应用程序上下文中访问应用程序将您的调用替换为:

with app.app_context():
    value = some_method()
Run Code Online (Sandbox Code Playgroud)