Django Rest тестирует код состояния с помощью pytest - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь проверить код состояния проекта DRF.

def test_status_code(client):
    resp = client.get('/myapi/api/')
    assert resp.status_code == 200

Я ожидаю вывода 200, но фактическое значение составляет 401.

Получив комментарии, я попыталсяДля этого:

import pytest
from rest_framework.authtoken.models import Token
from rest_framework.test import APIClient

@pytest.fixture
def user():
    token = Token.objects.get(user__username='foo')
    client = APIClient()
    user = client.credentials(HTTP_AUTHORIZATION='Token' + token.key)
    return user


def test_view_status_code(client, user):
    resp = client.get('/myapi/api/')
    assert resp.status_code == 200

1 Ответ

0 голосов
/ 07 февраля 2019

Сначала вызовите метод login() на клиенте:

def test_view_status_code(client, user):
    username = 'foo'
    password = 'bar'
    user.objects.create_user(username=username, password=password)
    client.login(username=username, password=password)
    response = client.get('/myapi/api/')
    assert resp.status_code == 200
...