Мое веб-приложение требует входа в систему, и я хочу проверить, что все url_patterns в приложении django badges
перенаправляют на страницу входа / домашнюю страницу.
У меня есть цикл, который может обрабатывать простые URL:
class ViewTests(TestCase):
def test_all_badge_page_status_codes_for_anonymous(self):
''' If not logged in then all views should redirect to home page '''
for path in urlpatterns:
name = 'badges:%s' % path.name
self.assertRedirects(
response=self.client.get(reverse(name)),
expected_url='%s?next=%s' % (reverse('home'), reverse(name)),
)
Однако это не работает для любого пути, для которого требуется аргумент ключевого слова, например:
path('<int:badge_id>', views.detail, name='badge_detail'),
Как я могу автоматически вставлять аргументы для путей, чтобы мне не приходилось писать отдельную строку для каждого path
в url_patterns
?