Unittest с mock для входа в систему django

Я пишу Unittests для Login на Django. И у меня серьезные проблемы с get_user(). Я просто не могу понять, как пройти через эту функцию в тесте. Я не могу сделать mock, и не могу подставить значения. Мне кажется, что я неправильно делаю. Но я не знаю, как сделать это правильно!

Пожалуйста, мне нужна помощь!

def user_login(request):
    if request.method == 'POST':
        form = UserLoginForm(data=request.POST)
        if form.is_valid():
            user = form.get_user()
            login(request, user)
            return redirect('/')

Мне нужен unittest для этой простой функции.

Вот очень простой тест для представления login, он утверждает, что ответ 200 возвращается, когда кто-то входит в систему. Я не думаю, что моки необходимы. Для полноты картины вы, скорее всего, захотите добавить тесты на неправильное имя пользователя/пароль и деактивированные аккаунты

import unittest
from django.test import Client
from django.contrib.auth import get_user_model


class SimpleTest(unittest.TestCase):
    def setUp(self):
        self.client = Client()
        self.username = 'foo'
        self.password = 'bar'
        self.user = get_user_model().objects.create_user(self.username, password=self.password)

    def test_login(self):
        response = c.post('/login/', {'username': self.username, 'password': self.password})
        self.assertEqual(response.status_code, 200)
Вернуться на верх