Logowanie klienta Django Unittests: nie działa w pakiecie testów, ale nie w Shell
Przeprowadzam podstawowy test mojego widoku domowego. Podczas logowania klienta z poziomu powłoki, ten sam wiersz kodu nie loguje klienta podczas korzystania z zestawu testów.
Jaki jest właściwy sposób logowania klienta podczas korzystania z zestawu testowego Django?
Lub
Jakiś pomysł, dlaczego klient nie loguje się przy użyciu mojej obecnej metody?
Test powłoki:
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
Pakiet testowy 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