РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
784 of 818 menu

Метод login

Метод login применяется к экземпляру класса Client и выполняет аутентификацию пользователя в тестовой среде. Он принимает учетные данные пользователя и возвращает True при успешной аутентификации, либо False в случае неудачи. Метод автоматически устанавливает необходимые сессионные данные, что позволяет эмулировать поведение залогиненного пользователя в последующих тестовых запросах.

Синтаксис

client.login(username='username', password='password')

Параметры

Метод принимает именованные аргументы:

  • username - имя пользователя для аутентификации (строка)
  • password - пароль пользователя (строка)

Метод возвращает булево значение: True при успешном входе и False при неудаче.

Пример . 1 - Базовый вход пользователя

Создадим тест, в котором выполняется вход пользователя с предварительно созданными учетными данными:

from django.test import TestCase from django.contrib.auth.models import User class LoginTest(TestCase): def setUp(self): User.objects.create_user( username='testuser', password='secretpassword' ) def test_user_login(self): client = self.client login_success = client.login( username='testuser', password='secretpassword' ) self.assertTrue(login_success)

Пример . 2 - Проверка доступа после входа

Проверим, что аутентифицированный пользователь может доступиться к защищенной странице:

from django.test import TestCase from django.contrib.auth.models import User from django.urls import reverse class ProtectedViewTest(TestCase): def setUp(self): User.objects.create_user( username='testuser', password='secretpassword' ) def test_authenticated_access(self): client = self.client client.login( username='testuser', password='secretpassword' ) response = client.get(reverse('profile')) self.assertEqual(response.status_code, 200)

Пример . 3 - Неудачная попытка входа

Проверим поведение системы при вводе неверных учетных данных:

from django.test import TestCase from django.contrib.auth.models import User class FailedLoginTest(TestCase): def setUp(self): User.objects.create_user( username='testuser', password='secretpassword' ) def test_failed_login(self): client = self.client login_success = client.login( username='testuser', password='wrongpassword' ) self.assertFalse(login_success)

Смотрите также

  • метод logout,
    который выполняет выход пользователя из системы
  • метод force_login,
    который выполняет принудительный вход без проверки пароля
  • атрибут client,
    который предоставляет тестовый клиент в классе TestCase
  • метод setUp,
    который используется для подготовки данных перед каждым тестом
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить