ホーム ビューの基本的なテストを実行しています。シェルからのクライアントのログインは機能しますが、テスト スイートを使用すると、同じコード行でクライアントのログインに失敗します。
Django テスト スイートを使用しているときにクライアントにログインする正しい方法は何ですか?
または
クライアントが現在の方法でログインしていない理由は何ですか?
シェルテスト:
import unittest
from django.test.client import Client
from django.test.utils import setup_test_environment
setup_test_environment()
client = Client()
login = client.login(username='agconti', password='password')
# login --> evals to True
Django テスト スイート:
#### View Tests ####
import unittest
from django.test.client import Client
from shopping_cart.models import Store, Order, Item, Transaction
class Home_ViewTest(unittest.TestCase):
def setUp(self):
self.client = Client()
# login user
login = self.client.login(username='agconti', password='password')
# Check login
self.assertEqual(login, True)
def test_details(self):
# get the home view
response = self.client.get('/')
self.assertEqual(response.status_code, 200)
# Check that the rendered context is not none
self.assertTrue(response.context['stores'] != None)
# self.assertEqual(login, True) --> login evals to False, raises the assertion