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)