我有一个端点,它执行一些逻辑和一个flash()
,然后重定向到另一个端点,这会添加另一个闪存并显示两个闪烁的消息。当我在浏览器中测试端点时,我会收到两条消息。但是,当我进行单元测试时,第一个闪光灯不会出现。
@bp.route('/signup/', methods=['POST'])
def signup():
form = SignupForm(prefix='signup')
next_url = url_for('.home')
if form.validate_on_submit():
# do stuff like add to waiting list
person = persons.new()
form.populate_obj(person)
person = persons.save(person)
flash(Markup(u'Thanks for signing up!'), 'success')
return redirect(next_url)
@bp.route('/')
def home():
flash('This is home', 'info')
return render_template('home.html')
class PageTests(MTestCase):
def test_signup(self):
r = self.post('/signup/',
data={
'signup-email': 'test1@test.com',
})
person = persons.find(email='test1@test.com').first()
self.assertIsNotNone(person)
self.assertIn('Thanks for signing up', r.data)
我猜测在重定向期间闪存队列丢失了,但我不完全确定如何或为什么。
答案 0 :(得分:0)
添加follow_redirects=True
参数,因为登录页面重定向。
r = self.post(
'/signup/',
data={
'signup-email': 'test1@test.com',
},
follow_redirects=True # <----
)