Cat*_*nin 4 python testing config flask
在为我的 Flask 应用程序编写测试时,我在尝试设置 Flask 配置设置时遇到了一个问题。
通常,我这样做:
import unittest
from factory import create_app
class ConfigTests(unittest.TestCase):
def setUp(self):
app = create_app('flask_test.cfg')
app.testing = True
self.app = app.test_client()
def test_app_is_development(self):
self.assertTrue(self.app.config['SECRET_KEY'] is 'secret_key')
self.assertTrue(self.app.config['DEBUG'] is True)
Run Code Online (Sandbox Code Playgroud)
这导致了错误
AttributeError: 'FlaskClient' 对象没有属性 'config'
仅从调试中我看到没有“配置”属性,而是我不得不self.app.application.config
让它工作。
import unittest
from factory import create_app
class ConfigTests(unittest.TestCase):
def setUp(self):
app = create_app('flask_test.cfg')
app.testing = True
self.app = app.test_client()
def test_app_is_development(self):
self.assertTrue(self.app.application.config['SECRET_KEY'] is 'secret_key')
self.assertTrue(self.app.application.config['DEBUG'] is True)
Run Code Online (Sandbox Code Playgroud)
我在做什么,Flask 是否在更新中改变了这一点,或者有更好的方法来做到这一点?
编辑:在顶部块中错误地发布了代码,现在是正确的
在app
在生产型的flask.app.Flask
,而你在测试中使用的一个是flask.testing.FlaskClient
其中有2个不同的对象。您通过 using 访问配置的方式self.app.application.config
是正确且唯一的方式,因为当您设置self.app = app.test_client()
它返回 FlaskClient 实例时,我相信。
看看流动的:FlaskClient和test_client
归档时间: |
|
查看次数: |
1439 次 |
最近记录: |