Использование 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?

Вернуться на верх