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

Метод assertURLEqual

Метод assertURLEqual применяется к экземпляру класса TestCase и проверяет, что два переданных URL-адреса эквивалентны. Сравнение выполняется без учета порядка параметров запроса, что позволяет избежать ложных срабатываний при разных последовательностях аргументов. Метод автоматически обрабатывает кодирование символов и нормализует пути, делая сравнение максимально удобным для тестирования веб-приложений.

Синтаксис

self.assertURLEqual(url1, url2, msg=None)

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

  • url1 - первый сравниваемый URL-адрес (строка);
  • url2 - второй сравниваемый URL-адрес (строка);
  • msg - необязательное сообщение об ошибке, которое будет выведено при несовпадении URL-адресов.

Пример . С простыми URL-адресами

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

from django.test import TestCase class URLTestCase(TestCase): def test_simple_urls(self): url1 = '/articles/2025/09/07/' url2 = '/articles/2025/09/07/' self.assertURLEqual(url1, url2) # Сравнение с полным URL full_url = 'https://example.com/articles/2025/09/07/' self.assertURLEqual(full_url, url2)

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

"All assertions passed successfully"

Пример . С параметрами запроса

Метод игнорирует порядок параметров в строке запроса:

from django.test import TestCase class URLParamsTestCase(TestCase): def test_url_with_query_params(self): url1 = '/search/?q=django&page=2&sort=date' url2 = '/search/?page=2&sort=date&q=django' # Порядок параметров не важен self.assertURLEqual(url1, url2) # Сравнение с другим значением параметра url3 = '/search/?q=python&page=2&sort=date' self.assertURLEqual(url1, url3)

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

"AssertionError: '/search/?q=django&page=2&sort=date' != '/search/?q=python&page=2&sort=date'"

Пример . Использование в тестировании редиректов

Метод удобно применять для проверки редиректов с помощью клиента:

from django.test import TestCase from django.urls import reverse class RedirectTestCase(TestCase): def test_redirect_to_article(self): response = self.client.get('/old-article/') # Проверяем URL редиректа expected_url = '/articles/2025/09/07/django-testing/' self.assertURLEqual(response.url, expected_url) # Проверяем с параметрами response = self.client.get('/search/?q=django') expected_url = '/search/results/?query=django&page=1' self.assertURLEqual(response.url, expected_url)

Пример . Работа с относительными и абсолютными путями

Метод корректно сравнивает относительные и абсолютные URL:

from django.test import TestCase class RelativeURLTestCase(TestCase): def test_relative_vs_absolute(self): relative = '/articles/2025/09/07/' absolute = 'https://example.com/articles/2025/09/07/' # Сравнение относительного и абсолютного URL self.assertURLEqual(relative, absolute) # Сравнение с разными доменами absolute2 = 'https://another.com/articles/2025/09/07/' self.assertURLEqual(absolute, absolute2)

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

  • метод assertRedirects,
    который проверяет редирект и соответствие URL-адреса
  • метод assertContains,
    который проверяет наличие текста в ответе сервера
  • метод assertInHTML,
    который проверяет наличие HTML-фрагмента
  • метод assertJSONEqual,
    который сравнивает два JSON-объекта
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить