我知道在测试中默认禁用登录。我试图通过将app.config['LOGIN_DISABLED']
设置为False来恢复它们。这似乎不起作用,因为current_user
仍然返回None
,但将在测试文件之外的代码中返回用户。在
下面是一些相关的代码位。我的Flask app对象最初是在我的应用程序的主__init__.py
中创建的,在测试期间导入并重新配置。在
==========
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager
app = Flask(__name__)
app.config[u'DEBUG'] = settings.debug
db = SQLAlchemy(app)
login_manager = LoginManager()
login_manager.init_app(app)
==========
==========
from flask_login import current_user
from my_app.tests.base import BaseTest
class MyTests(BaseTest):
def test_a(self):
#visit endpoint that calls `login_user(user)`
#printing `current_user` in that endpoint works, but the following line only returns `None`
print current_user
注意:用户必须在打印语句之前登录。在端点中使用current_user
正如预期的那样工作。在
结果我的问题是由于测试没有使用相同的上下文,所以我的解决方案与描述的here和{a2}相似。
tests/test_a.py
现在看起来像:奇怪的是,}在这个改变之后并不重要-两者都可以被删除。在
app.config['LOGIN_DISABLED'] = False
和{相关问题 更多 >
编程相关推荐