Django Unittests Client Login: Fehler in der Testsuite, aber nicht in der Shell
Ich führe einen Basistest meiner Heimatansicht durch. Während das Anmelden des Clients über die Shell funktioniert, kann der Client bei Verwendung der Testsuite nicht über dieselbe Codezeile angemeldet werden.
Wie logge ich mich in der Django-Testsuite richtig ein?
Oder
Irgendeine Idee, warum sich der Client nicht mit meiner aktuellen Methode anmeldet?
Shell-Test:
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-Testsuite:
#### 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