Использование RequestFactory при тестировании представлений, которые отсутствуют в urls.py
Я хочу протестировать свой пользовательский декоратор (просто пользовательская защита, аналогичная @login_required
). Для этой цели я создаю два фиктивных представления:
def foo(request):
return JsonResponse('ok', safe=False)
@my_custom_decorator
def protected_foo(request):
return JsonResponse('ok', safe=False)
Очевидно, что они не упоминаются в urls.py
- это просто простые представления, которые будут использоваться в модульном тесте.
Что я попытаюсь сделать, так это просто:
request = RequestFactory().get() <== this is wrong
response = foo(request)
assert response.status_code == 200
# check if decorator works when no value is provided
failed_response = protected_foo(request)
assert failed_response.status_code == 403
# check if decorator works when the value is provided in GET
request = RequestFactory().get(f'?SECRET_VALUE={the_secret_value}') <== this is wrong
response = protected_foo(request)
assert response.status_code == 200
# check if decorator works when the value is provided in GET
request = RequestFactory().post('', {'SECRET_VALUE': the_secret_value}) <== this is wrong
response = protected_foo(request)
assert response.status_code == 200
Мой вопрос заключается в следующем - как передать данные в RequestFactory craft GET или POST запрос, содержащий значения, когда представления не подключены к urls.py
?
Другими словами - что должно быть вместо строк, содержащих this is wrong
?