如何在flask应用程序中测试登录(使用MySQL)?

如何在flask应用程序中测试登录(使用MySQL)?,第1张

概述我在 this tutorial之后一直在学习烧瓶.现在我正在尝试使用python unittest测试应用程序的某些部分.但我无法掌握如何测试用户登录.这是我正在尝试的测试代码: from intro_to_flask import appfrom models import dbfrom models import Userclass BaseTestCase(unittest.Tes 我在 this tutorial之后一直在学习烧瓶.现在我正在尝试使用python unittest测试应用程序的某些部分.但我无法掌握如何测试用户登录.这是我正在尝试的测试代码:

from intro_to_flask import appfrom models import dbfrom models import Userclass BaseTestCase(unittest.TestCase):def setUp(self):    app.config['sqlALCHEMY_DATABASE_URI'] = 'MysqL://credentials/database'    app.config['TESTING'] = True    app.config['CSRF_ENABLED'] = False    with app.app_context():        db.create_all()def tearDown(self):    with app.app_context():        db.session.remove()        db.drop_all()def test_User_login(self):    tester = app.test_clIEnt(self)    u = User(firstname = 'testname',lastname = 'testlaname',email = '[email protected]',password = 'pass')    with app.app_context():        db.session.add(u)        db.session.commit()    response = tester.post('/signin',data=dict(email = '[email protected]',password = 'pass'),follow_redirects=True )    self.assertIn(b'Profile',response.data) #User is redirected to profile page after loggin in which has giant Profileif __name__ == '__main__':    unittest.main()

测试失败并且很明显,登录和以下重定向不会发生.

我在测试中添加了以下print语句:

打印(响应)
打印(response.data)

其中产生了以下结果:

打印(响应)

<Response streamed [200 OK]>

打印(response.data)

<!DOCTYPE HTML><HTML>  <head>    <Title>Flask App</Title>    <link rel="stylesheet" href="/static/CSS/main.CSS">  </head>  <body>  <header>    <div >      <h1 >Image Hosting Test v 0.2</h1>      <nav>        <ul >          <li><a href="/">Home</a></li>          <li><a href="/about">About</a></li>          <li><a href="/contact">Contact</a></li>          <li><a href="/signup">Sign Up</a></li>          <li><a href="/signin">Sign In</a></li>        </ul>      </nav>    </div>  </header>    <div >  <h2>Sign In</h2>  <form action="/signin" method=post>    <div ><input ID="csrf_token" name="csrf_token" type="hIDden" value="1463805648##fcc7e953937a80b6744554aed86d092fcf70e1fb"></div>    <label for="email">Email</label>    <input ID="email" name="email" type="text" value="[email protected]">    <label for="password">Password</label>    <input ID="password" name="password" type="password" value="">    <input ID="submit" name="submit" type="submit" value="Sign In">  </form>    </div>  </body></HTML>

有人可以向我解释一下,我的测试有什么问题吗?

Python版本:2.7.9
MysqL版本:5.7
Flask版本:0.10.1
*** 作系统windows 10

解决方法 啊,我认为这是导致它的CSRF保护.尝试通过设置禁用它

app.config['WTF_CSRF_ENABLED'] = False
总结

以上是内存溢出为你收集整理的如何在flask应用程序中测试登录(使用MySQL)?全部内容,希望文章能够帮你解决如何在flask应用程序中测试登录(使用MySQL)?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197616.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存