Я не уверен, как правильно тестировать функции, которые используются внутри классов представлений / разрешений.
Это полезная нагрузка моего запроса:
{"name": "John"}
И этофункция, которую я хочу проверить:
def get_name(request):
return request.data['name']
Это представление, которое будет использовать функцию:
class SomeView(APIView):
def get(self, request):
name = get_name(request=request)
return Response(status=200)
Как мне создать прибор для проверки функции get_name
? Я пробовал это:
@pytest.fixture
def request_fixture()
factory = APIRequestFactory()
return factory.get(
path='',
data={"name": "John"},
format='json')
def test_get_name(request_fixture):
assert get_name(request=request_fixture) == "John"
Но я получаю ошибку: AttributeError: 'WSGIRequest' object has no attribute data
.
Один обходной путь, кажется, декодирует атрибут body
:
def get_name(request):
data = json.loads(request.body.decode('utf-8'))
return data['name']
Но это не совсем правильный способ сделать это, и я полагаю, что мне чего-то не хватает в классе WSGIRequest
. Может кто-нибудь объяснить мне, как это должно быть проверено? Было бы здорово, если бы я мог использовать тот же прибор для проверки зрения.