這是功能測試。 Webtest可以保留會話cookie,以便您可以使用它來以用戶身份登錄和訪問各種頁面。至於測試應用程序的某些部分,您可以使用某些自定義(或僅使用自定義組合選項)來覆蓋身份驗證策略。
def make_test_groupfinder(principals=None):
def _groupfinder(u, r):
return principals
return _groupfinder
然後你可以使用這個函數來模擬不同的校長。但是,如果您的應用程序也依賴於任何地方的authenticated_userid(request)
,則不會處理用戶標識。爲此,您必須用虛擬身份驗證替換身份驗證策略。
class DummyAuthenticationPolicy(object):
def __init__(self, userid, extra_principals=()):
self.userid = userid
self.extra_principals = extra_principals
def authenticated_userid(self, request):
return self.userid
def effective_principals(self, request):
principals = [Everyone]
if self.userid:
principals += [Authenticated]
principals += list(self.extra_principals)
return principals
def remember(self, request, userid, **kw):
return []
def forget(self, request):
return []
我正在使用mozilla persona進行登錄過程。我是否需要創建一個僅用於測試的虛假登錄視圖? – ascobol
您需要一種以認證用戶的身份與您的應用交談的方式。獲取經過身份驗證的用戶的最簡單方法是登錄。還有很多其他的方法,但他們基本上都涉及到搞亂你的應用程序如何確定登錄用戶(testing.ini可以幫助你設置)。 –