単体テスト用のユーザーを次の 2 つの方法で作成しました。
1) 「auth.user」のフィクスチャを作成します。これはおおよそ次のようになります。
{
"pk": 1,
"model": "auth.user",
"fields": {
"username": "homer",
"is_active": 1,
"password":
"sha1$72cd3$4935449e2cd7efb8b3723fb9958fe3bb100a30f2",
...
}
}
一見重要でない部分を省略しました。
2) setUp 関数で 'create_user' を使用します (ただし、すべてをフィクスチャ クラスに保持したいのですが):
def setUp(self):
User.objects.create_user('homer', 'ho...@simpson.net', 'simpson')
どちらの場合も、パスワードは simpson であることに注意してください。
この情報がテスト データベースに何度も正しく読み込まれていることを確認しました。User.objects.get を使用して User オブジェクトを取得できます。「check_password」を使用して、パスワードが正しいことを確認できます。ユーザーはアクティブです。
しかし、常に、self.client.login(username='homer', password='simpson') は失敗します。なぜだろうと困惑しています。私は、これに関するすべてのインターネット ディスカッションを読んだと思います。誰でも助けることができますか?
単体テストのログイン コードは次のようになります。
login = self.client.login(username='homer', password='simpson')
self.assertTrue(login)
ありがとう。