回答編集履歴
1
手元で挙動を見返して回答を整形(コードの変更点あり)
answer
CHANGED
@@ -1,8 +1,18 @@
|
|
1
|
-
|
1
|
+
## 整理
|
2
|
-
その上で、`client.login`側で求められているのは生パスワードであるため、`User.password`を渡しても不一致になるのではないでしょうか。
|
3
2
|
|
4
|
-
|
3
|
+
手元で挙動を見返した範囲では、コード上の問題点と思われるのは次の2箇所です。
|
5
4
|
|
5
|
+
### `login`時に必要なのはユーザー名
|
6
|
+
|
7
|
+
現状`self.cleint.login`でメールアドレスとパスワードを渡していますが、渡す必要があるのはユーザー名とパスワードです。
|
8
|
+
|
9
|
+
### `password`に生パスワードを渡せていない
|
10
|
+
|
11
|
+
`User`オブジェクトが保持している`password`ではなく、あくまで保存用に不可逆変換したデータです。
|
12
|
+
`self.client.login`には生パスワードを渡す必要があります。
|
13
|
+
|
14
|
+
## 回答となるコード例
|
15
|
+
|
6
16
|
```diff
|
7
17
|
class LoggedInTestCase(TestCase):
|
8
18
|
"""各テストクラスで共通の事前準備処理をオーバーライドした独自TestCaseクラス"""
|
@@ -21,6 +31,6 @@
|
|
21
31
|
password='user1234')
|
22
32
|
# テスト用ユーザーでログインする
|
23
33
|
- self.client.login(email=self.test_user.email, password=self.test_user.password)
|
24
|
-
+ # 生パスワードを
|
34
|
+
+ # ユーザー名と生パスワードを指定する
|
25
|
-
+ self.client.login(
|
35
|
+
+ self.client.login(username=self.test_user.username, password='user1234')
|
26
36
|
```
|