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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage