Две части к этому ответу:
Тесты юнитов Python довольно явные.Чтобы протестировать несколько просмотров, вам нужно сделать несколько запросов.Один запрос на просмотр.Вы можете поместить обратные имена в список, прокрутить их и выполнить утверждение для каждого в цикле.
Не следует тестировать более одного отдельного представления за раз.Их называли юнит-тестами по причине.Вы тестируете отдельную единицу на предмет индивидуального поведения.Я бы установил, где каждое представление имеет свой собственный класс TestCase.Затем для каждого из этих тестовых случаев проверьте, перенаправляет ли это отдельное представление, если оно не вошло в систему. Таким образом, вы получите TestCase с методом тестирования для каждого представления и, следовательно, у вас будет один или несколько методов тестирования, которыепроверяет проверку входа в систему для каждого представления.
Философия юнит-тестов заключается в том, что каждый тест должен проверять только крошечный фрагмент поведения.Чтобы убедиться, что вы делаете это, у вас должно быть только 1 утверждение для каждого метода теста.Только в крайних случаях у вас должно быть больше одного, и если это так, все они должны быть очень тесно связаны друг с другом логически.
---------------------------------------Редактировать-------------------------------------
Если вы хотите узнать, какие представления не имеют реализации login_required / LoginRequiredMixin, я не думаю, что есть что-то, что может помочь вам в этом, кроме поиска через редакторыпоисковый движок.Я могу ошибаться, поэтому я не говорю это наверняка, но я думаю, что вам просто придется использовать поиск файлов.
Вы могли бы написать скрипт, который просматривает все файлы url.py и просматривает циклыкаждый URL:
for url in app1.urls.urlpatterns: # loop through urls in "urlpatterns = [url(...), url(...), ...]"
url_name = <get_url_name_from_pattern>
response = # request to url without login
if response.status_code = 302: print "this view has login required"
else: print "this view doesn't have login required"
for url in app2.urls.urlpatterns: # loop through urls in "urlpatterns = [url(...), url(...), ...]"
url_name = <get_url_name_from_pattern>
response = # request to url without login
if response.status_code = 302: print "this view has login required"
else: print "this view doesn't have login required"
for url in app3.urls.urlpatterns: ...
Вам нужно будет посмотреть, как получить обратное имя для urlpattern.Я никогда этого не делал.