测试期间无法禁用 WTF CSRF 保护
Cannot disable WTF CSRF protection during testing
我在进行单元测试时不知道如何禁用 CSRF 保护。
我的 test_login()
函数未通过单元测试。当我调试时,我可以看到在表单中 csrf_enabled
值设置为 True
文档指出 app.config['WTF_CSRF_ENABLED'] = False
应该足够了,但这似乎不起作用
谁能告诉我如何禁用 CSRF 保护?
谢谢
from flask.ext.testing import TestCase
from flask import Flask
from Shares import db, app as appy
from Shares.models import User
import manage
class test(TestCase):
def create_app(self):
app = Flask(__name__)
app.config['TESTING'] = True
app.config['WTF_CSRF_ENABLED'] = False
return appy
SQLALCHEMY_DATABASE_URI = "sqlite://"
TESTING = True
def setUp(self):
manage.initdb()
print self.login('lucas', 'test').data
def tearDown(self):
db.session.remove()
db.drop_all()
def login(self, username, password):
return self.client.post('/login', data=dict(
username=username,
password=password
), follow_redirects=True)
def logout(self):
return self.client.get('/logout', follow_redirects=True)
def test_adduser(self):
lucas=User(username="lucas", email="lucas@example.com", password="test")
user2 = User(username="lucas", email="lucas@test.com")
db.session.add(lucas)
db.session.commit()
assert lucas in db.session
assert user2 not in db.session
def test_login(self):
lucas=User(username="lucas", email="lucas@example.com", password="test")
db.session.add(lucas)
db.session.commit()
rv = self.login('lucas', 'test')
assert 'Welcome' in rv.data
我已经解决了。
我刚刚在变量名 app & appy 中输入错误
def create_app(self):
app = Flask(__name__)
appy.config['TESTING'] = True
appy.config['WTF_CSRF_ENABLED'] = False
return appy
我在进行单元测试时不知道如何禁用 CSRF 保护。
我的 test_login()
函数未通过单元测试。当我调试时,我可以看到在表单中 csrf_enabled
值设置为 True
文档指出 app.config['WTF_CSRF_ENABLED'] = False
应该足够了,但这似乎不起作用
谁能告诉我如何禁用 CSRF 保护?
谢谢
from flask.ext.testing import TestCase
from flask import Flask
from Shares import db, app as appy
from Shares.models import User
import manage
class test(TestCase):
def create_app(self):
app = Flask(__name__)
app.config['TESTING'] = True
app.config['WTF_CSRF_ENABLED'] = False
return appy
SQLALCHEMY_DATABASE_URI = "sqlite://"
TESTING = True
def setUp(self):
manage.initdb()
print self.login('lucas', 'test').data
def tearDown(self):
db.session.remove()
db.drop_all()
def login(self, username, password):
return self.client.post('/login', data=dict(
username=username,
password=password
), follow_redirects=True)
def logout(self):
return self.client.get('/logout', follow_redirects=True)
def test_adduser(self):
lucas=User(username="lucas", email="lucas@example.com", password="test")
user2 = User(username="lucas", email="lucas@test.com")
db.session.add(lucas)
db.session.commit()
assert lucas in db.session
assert user2 not in db.session
def test_login(self):
lucas=User(username="lucas", email="lucas@example.com", password="test")
db.session.add(lucas)
db.session.commit()
rv = self.login('lucas', 'test')
assert 'Welcome' in rv.data
我已经解决了。
我刚刚在变量名 app & appy 中输入错误
def create_app(self):
app = Flask(__name__)
appy.config['TESTING'] = True
appy.config['WTF_CSRF_ENABLED'] = False
return appy