Тест Django не заметит «django.contrib.auth.context_processors.auth» - PullRequest
0 голосов
/ 24 мая 2018

Я пишу базовый тест django для страницы формы.Вот форма:

# This is the form to become a seller
class BecomeSellerForm(forms.Form):
name = forms.CharField(max_length=100)
email = forms.EmailField(min_length=3, max_length=20)
phone_number = forms.IntegerField(max_value=19999999999)

Мой тест состоит из основного почтового запроса, и я утверждаю, что мой код статуса ответа равен 200. Однако, я получаю эту ошибку в своем тесте:

ValueError: modules context processor require "django.contrib.auth.context_processors.auth"to be in TEMPLATE_CONTEXT_PROCESSORS in your settings file.

И он попадает в успешное выражение return в моем коде views.py:

return render(request, 'accounts/become_seller_success.html', context)

Меня смущает то, что я на 100% выполнил это требование в файле настроек:

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': ['templates', ],
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            'django.contrib.auth.context_processors.auth',
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
            'django.contrib.messages.context_processors.messages',
            'django.template.context_processors.request',
        ],
    },
},
]

Так почему мой тест об этом суетится?Я искал вокруг, но не видел проблемы / решения, которые похожи.Большое спасибо за помощь

1 Ответ

0 голосов
/ 24 мая 2018

Я понял.Короче говоря - при использовании RequestFactory - вы должны установить request.user на что-то.Установка в none не работает.

request.user = None

Добавление того, что до того, как я сделал вызов, исправляет все, и когда я использую его для проверки кода разрешений, он работает также, как и ожидалось.

Спасибо за совет @Алистер

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