1

我正在测试一个 Flask 应用程序,该应用程序使用 Flask-Principal 来实现基于角色的权限以及精细的资源保护。我不确定如何处理在发布请求中设置身份。我正在使用其他Flask-Principal 帖子中概述的测试策略。我将查询字符串方法用于获取请求,并且在发布请求中我将 query_string 更改为标题。获取请求通过,但所有发布请求都失败,权限被拒绝。

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")

任何帮助或见解将不胜感激。我认为我的部分问题是对如何以及在何处设置身份缺乏了解。

4

1 回答 1

0

事实证明,在涉及发布请求的测试期间,使用 query_string 正确设置了 Flask-Principal Identity。问题是follow_redirects在请求中设置为 True 并且未在重定向上加载身份。我删除了重定向并通过检查数据库验证了发布请求是否有效。

于 2014-07-21T16:11:31.613 回答