大家好,我想在我的django應用程式上撰寫單元測驗,以測驗不同的API端點,但似乎我無法弄清楚問題所在,這里是我目前所做的簡要代碼。
urls.py :
path('translate/display/', DisplayTranslation.as_view(), name='display_translation') 。
這是相應的DRF view.py :
class DisplayTranslation(generics.ListAPIView)。
queryset = Translation.objects.all()
serializer_class = TranslationSerializers
permission_classes = (IsAuthenticated,)
這是我到目前為止在我的單元測驗.py上所做的作業 :
apiclient = APIClient()
class TranslationTestCases(APITestCase)。
def setUp(self)。
self.role = baker.make(Roles)
self.user = baker.make(Users, user_role=self.role)
self.token = reverse('token_obtain_pair', kwargs={'email': self.user.email, 'password': self.user.password})
self.translation = baker.make(Translation, _quantity=10)
def test_get_all_translations(self)。
header = {'HTTP_AUTHORIZATION': 'Token {}'.format(self.token)}。
response = self.client.get(reverse('display_translation'), {}, **header)
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 10)
這是我在運行測驗時得到的錯誤。
in _reverse_with_prefix raise NoReverseMatch(msg) django.urls.exceptions.NoReverseMatch。對'token_obtain_pair'進行反轉,關鍵字引數'{'email': '[email protected]', 'password': 'PfQzPqqVVLAdLZtJyVUxVjkGJEgRABYdHxMRhCGZJWxnZxpxEgUkgUKklENrWlBiYOCxhaDtJXdtXCtNdOJYtSWTzIrdvPnrmezXBNjEYYTpyZWjOLMnMIBfYnLwc'}' 未找到。嘗試了1種模式。['token/$']
更多資訊,在我的Django應用的認證中,我使用了DRF、rest_auth & SimpleJWT庫。
我可以做什么來改進我的代碼?或者其他解決方案?我沒有找到與我類似的問題。
uj5u.com熱心網友回復:
你基本上可以用
@patch.object(DisplayTranslation, "permission_classes"/span>, [])
def test_get_all_translations(self)。
...
https://docs.python.org/3/library/unittest.mock.html#patch-object
帶有認證功能:
urlpatterns = [
...
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair') 。
path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh') 。
...
]
class TranslationTestCases(APITestCase)。
def setUp(self)。
self.api_client = APIClient()
self.role = baker.make(Roles)
self.user = baker.make(Users, user_role=self.role)
self.token_url = reverse('token_obtain_pair')
self.translation = baker.make(Translation, _quantity=10)
response = self.api_client.post(self.token_url, {"username": self.user.username, "password": self.user.password})
self.token = response.json()["訪問"]
def test_get_all_translations(self)。
header = {'HTTP_AUTHORIZATION': 'Bearer {}'.format(self.token)}。
...
https://django-rest-framework-simplejwt.readthedocs.io/en/latest/getting_started.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/310309.html
標籤:
上一篇:布尼特2路捆綁
