2014-07-08 76 views
1

我正在測試一個Flask應用程序,該應用程序使用Flask-Principal進行基於角色的權限以及粒度資源保護。我不確定如何處理在發佈請求中設置身份。我正在使用此其他Flask-Principal post中概述的測試策略。我正在使用查詢字符串方法獲取請求,並在發佈請求中將query_string更改爲標頭。獲取請求通過,但所有發佈請求都會因拒絕權限而失敗。你如何在單元測試中設置Flask-Principal身份?

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

任何幫助或見解,將不勝感激。我認爲我的問題的一部分是對身份設置的方式和位置缺乏理解。

回答

0

事實證明,在涉及發佈請求的測試期間,使用query_string正確設置了Flask-Principal Identity。問題是請求中的follow_redirects設置爲True,並且Identity未在重定向上加載。我刪除了重定向,並通過檢查數據庫來驗證發佈的請求是否正在工作。

相關問題