Цикл теста Django для всех url_patterns для анонимных пользователей - PullRequest
0 голосов
/ 05 января 2019

Мое веб-приложение требует входа в систему, и я хочу проверить, что все 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...