我正在测试一个Flask应用程序,它使用Flask-Principal来实现基于角色的权限和细粒度的资源保护。我不确定如何在post请求中设置身份。我正在使用另一个Flask-Principal post中概述的测试策略。我对get请求使用查询字符串方法,在post请求中我将query_string更改为headers。get请求通过,但所有post请求都失败,权限被拒绝。
def test_admin(self):
r = self.client.get('/admin')
self.assertEqual(r.status_code, 403)
#
r = self.client.get('/admin', query_string={'idname': "member"})
self.assertEqual(r.status_code, 403)
#
r = self.client.get('/admin', query_string={'idname': "admin"})
self.assertEqual(r.status_code, 200)
self.assertEqual(r.data, "OK")任何帮助或见解都将不胜感激。我认为我的部分问题是缺乏对身份如何设置以及在哪里设置的理解。
发布于 2014-07-22 00:11:32
事实证明,在涉及post请求的测试过程中,使用query_string正确设置了Flask-Principal标识。问题是请求中的follow_redirects被设置为True,并且身份没有被加载到重定向。我删除了重定向,并通过检查数据库来验证post请求是否正常工作。
https://stackoverflow.com/questions/24636739
复制相似问题