2012-01-19 29 views
2

私はdjangoテストでログインデコレータを使用する際に問題があります。多くのテストは、Djangoテスト:テストケース用のログインデコレータの使用

から始まります。
self.client.login(username='foo', password='bar') 

したがって、ログインは原則として動作します。しかし、今、私はちょうど楽しみのために、デコレータloginにこのコード行をリファクタリングしたい:

def login(fn): 
    def wrapper(self): 
     self.client.login(username='foo', password='bar') 
     return fn(self) 
    return wrapper 

はしかし、その後失敗テストがユーザーfooは 'TRUEでもself.client.loginリターンでログインしていないことを私に示しています。

もう1つ不思議なのは、デコレータがラッピング以外何もしないように、self.client.loginをデコレータから離れると、装飾されたテストメソッド内からの通常のログインはもはや不可能です。

私はテストクライアントにいくつかのコンテキストまたはスコープの問題があると思います。プロンプトが何であることができますか? P.S .:この話は、python2.7とdjango-1.3.1に関するものです。

答えて

関連する問題