Как проверить представление на основе классов django с токен-аутентификацией? - PullRequest
0 голосов
/ 30 октября 2019

Я тестирую REST API, который требует аутентификации токена.

Я использую coreapi.Client и coreapi.auth.TokenAuthentication для проверки представления.

Но происходит сбой из-за следующего исключения: coreapi.exceptions.NetworkError: Схема отсутствия URL-адреса '/ v0 / endpoint /'

Здесь перечислены мои зависимости:

python_version= "3.7"

django = "== 2.2.6"

djangorestframework = "== 3.9.4"

Тестовый файл

from rest_framework.test import APITestCase
import coreapi
from requests.auth import HTTPBasicAuth
from django.urls import reverse
from module.views import MyView


class TestViews(APITestCase):

    def test_train_GET(self):
        auth = coreapi.auth.TokenAuthentication(
            scheme = 'Token',
            token = '<TOKEN>'
        )
        client: coreapi.Client = coreapi.Client(auth=auth)
        response = client.get(
            reverse('endpoint')
        )
        self.assertEqual(response.status_code, 200)

Файл URL-адреса проекта:

from django.urls import include, path

urlpatterns = [
    path('v0/', include('app.urls')),
]

Файл URL-адреса приложения:

from django.conf import settings
from django.contrib import admin
from django.urls import include, path

from .views import MyView

urlpatterns = [
    path('endpoint/', MyView.as_view(), name='endpoint'),
]

При выполнении теста я получаю следующую ошибку:

повышение исключений. URL-адрес сети ("URL"отсутствует схема "% s". "% url) coreapi.exceptions.NetworkError: URL отсутствует схема" /v0/endpoint/'.

...