私は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に関するものです。