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

Метод get

Метод get класса Client предназначен для выполнения GET-запросов к вашему Django-приложению в тестовой среде. Он возвращает объект ответа, содержащий информацию о статусе, содержимом и заголовках ответа. Метод принимает путь URL и дополнительные необязательные параметры для настройки запроса.

Синтаксис

client.get(path, data=None, follow=False, secure=False, **extra)

Параметры метода get:

  • path - обязательный строковый параметр, указывающий относительный URL-адрес, к которому выполняется запрос
  • data - необязательный словарь, содержащий GET-параметры, которые будут добавлены к URL-адресу
  • follow - логический параметр, указывающий, следует ли автоматически обрабатывать перенаправления. По умолчанию False
  • secure - логический параметр, указывающий, следует ли использовать HTTPS-протокол. По умолчанию False
  • **extra - дополнительные параметры, такие как заголовки, данные пользователя для аутентификации и т.д.

Пример

Базовый пример выполнения GET-запроса к главной странице:

from django.test import TestCase from django.test import Client class MainPageTest(TestCase): def test_home_page(self): client = Client() response = client.get('/') self.assertEqual(response.status_code, 200) self.assertContains(response, 'Welcome to our site')

Результат выполнения кода:

"Test passed successfully"

Пример

Выполнение GET-запроса с параметрами для поиска статей:

from django.test import TestCase from django.test import Client class SearchTest(TestCase): def test_search_articles(self): client = Client() response = client.get('/search/', {'query': 'django', 'page': 1}) self.assertEqual(response.status_code, 200) self.assertContains(response, 'Django tutorial')

Результат выполнения кода:

"Test passed successfully"

Пример

Использование параметра follow для обработки перенаправлений:

from django.test import TestCase from django.test import Client class RedirectTest(TestCase): def test_redirect_follow(self): client = Client() response = client.get('/old-url/', follow=True) self.assertEqual(response.status_code, 200) self.assertEqual(len(response.redirect_chain), 1) self.assertEqual(response.redirect_chain[0][0], '/new-url/')

Результат выполнения кода:

"Test passed successfully"

Пример

Выполнение GET-запроса с дополнительными заголовками:

from django.test import TestCase from django.test import Client class HeaderTest(TestCase): def test_request_with_headers(self): client = Client() response = client.get( '/api/users/', HTTP_ACCEPT='application/json', HTTP_AUTHORIZATION='Bearer token123' ) self.assertEqual(response.status_code, 200) self.assertEqual(response['Content-Type'], 'application/json')

Результат выполнения кода:

"Test passed successfully"

Пример

Использование get с аутентифицированным пользователем:

from django.test import TestCase from django.test import Client from django.contrib.auth.models import User class AuthenticatedTest(TestCase): def setUp(self): self.user = User.objects.create_user( username='testuser', password='testpass123' ) def test_authenticated_get(self): client = Client() client.login(username='testuser', password='testpass123') response = client.get('/profile/') self.assertEqual(response.status_code, 200) self.assertContains(response, 'Welcome testuser')

Результат выполнения кода:

"Test passed successfully"

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

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