Я пытаюсь написать несколько тестов для приложения Django, над которым я работаю, но я еще не определился с точными URL-адресами, которые я хочу использовать для каждого представления. Поэтому в тестах я использую именованные URL-адреса.
Например, у меня есть URL-адрес с именем «Панель управления»:
c = Client()
resp = c.get(reverse('dashboard'))
Это представление должно быть доступно только для авторизованных пользователей. Если текущий пользователь анонимен, он должен перенаправить его на страницу входа в систему, которая также является именованным URL-адресом. Однако, когда он это делает, он использует дополнительный параметр GET для отслеживания URL, с которого он только что пришел, что приводит к следующему:
/login?next=dashboard
Когда я затем пытаюсь протестировать это перенаправление, он терпит неудачу из-за этих дополнительных параметров:
# It's expecting '/login' but gets '/login?next=dashboard'
self.assertRedirects(resp, reverse('login'))
Очевидно, это сработает, если я жестко закодирую их в тесте:
self.assertRedirects(resp, '/login?next=dashboard')
Но тогда, если я когда-нибудь решу изменить URL-адрес для моего представления панели инструментов, мне придется обновить каждый тест, который его использует.
Могу ли я что-нибудь сделать, чтобы упростить обработку этих дополнительных параметров?
Любые советы приветствуются.
Спасибо.