如何使用令牌身份验证测试基于Django类的视图?

2024-06-10 15:42:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在测试一个需要令牌身份验证的restapi。你知道吗

我正在使用coreapi.客户端以及coreapi.auth.TokenAuthentication验证测试视图。你知道吗

但由于以下异常而失败:coreapi.exceptions.NetworkError:URL缺少方案'/v0/endpoint/'

我的依赖项列在这里:

python\u 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'),
]

我在运行测试时收到以下错误:

提高异常。NetworkError(“URL缺少方案“%s”。%URL) coreapi.exceptions.NetworkError:URL缺少方案“/v0/endpoint/”。你知道吗


Tags: 文件pathdjangofromimportauthurlinclude