私はジャンゴの初心者です。最初の django アプリで、ビューの 1 つをテストしてログインを確認しています。これが私の見解です:
from testprjct.testapp.forms import LoginForm_form
from django.contrib import auth
def check_login(request):
if request.method == 'POST':
form = LoginForm_form(request.POST)
if request.POST and form.is_valid():
username = request.POST.get('username', '')
password = request.POST.get('password', '')
# I am hard-coding the credentials here just for testing
user = auth.authenticate(username = 'test123', password = 'qwerty')
if user is not None and user.is_active:
auth.login(request, user)
.....
サーバーを実行していて、フロントエンドからログインしようとすると、このビューは正常に機能します。しかし、このビューのテスト ケースを実行すると失敗します。このビューのテスト コードは次のとおりです。
from testprjct.testapp.models import loginform
class ViewTests(TestCase):
def setUp(self):
loginform.objects.create(username='test123', password='qwerty')
def test_login(self):
response = self.client.get('/login/')
self.assertEqual(response.status_code, 200)
response = self.client.post('/login/', {"username": "test123", "password": "qwerty"})
print response
self.assertEqual(response.status_code, 302)
これは、ログインの詳細が無効であるというメッセージを表示することにより、常に 200 status_code (成功ページにリダイレクトされません) で戻ります。
ログインページでパスワードを忘れた場合のリンクをテストしているときも同じ問題です。有効な電子メール ID が提供されている場合、フロントエンドから正常に動作します。しかし、私のテストケースでは、フロントエンドで指定したものと同じ電子メール ID を提供しているにもかかわらず、電子メール ID にユーザー アカウントが関連付けられていないというエラー メッセージが常に表示されます。
何か提案はありますか?私はすでに問題を理解しようとして、これに多くの時間を費やしてきました。