Django Rest Frameworkを使用してREST-ful APIを構築しています。以前はREST APIとの統合を処理していましたが、テストのためのテスト用APIキー、データの送信とモックデータの返送を可能にするキーはシステムに格納しません。私は私のAPIでこの同じ機能を実装しようとしていますが、まだこれを行う方法を見つけることができませんでした。Django Rest FrameworkとTokenAuthenticationを使用してモックデータを返すためのテストAPI
答えて
でdocumetationに従ってください
from django.contrib.auth import authenticate
def mock_funcname(func):
def wrapper(request, *args, **kwargs):
user = authenticate(token=request.REQUEST['token'])
if user.id == 'TEST USER ID':
return Response({'detail': "Some stuff mocked for this user :)"})
return func(request, *args, **kwargs)
return wrapper
はだから今、あなたが他のデコレータのようにそれを置くことができます:)ことを行うにはいくつかのデコレータ:
@api_view(['POST'])
@permission_classes((IsAuthenticated,))
@mock_funcname
def funcname(request, pid=None):
return response......
これは基本的な機能で、より複雑にする必要があります
最初に、mommyをインストールして、テストに模擬データを作成することができます。 は、だからあなたのtests.pyであなたはSTATUS_CODEと応答をチェックし、あなたのAPIにテストを作成することができます。その後、
def test(self):
user = mommy.make(User) # Create a fake user
token = Token.objects.get(user__username=user.username) # Generate a token
self.client.credentials(HTTP_AUTHORIZATION='Token ' + token.key) # Token for your request
response = self.client.post("url", your_data) # POST in your URL
self.assertEqual(response.status_code, status.HTTP_201_CREATED) # Status Code of Creation
self.assertEqual(User.objects.last().first_name, user.first_name) # Check the fields created
とpython manage.py test
を実行するテストを実行するか、使用することができますDRF
ママはユニットテストの代わりにライブ統合テストを行いますか? – panatale1
私はそうは思わない! 'manage.py test'を実行している偽のデータベースを作成するためです。しかし、あなたのシステムにキーが与えられたという要求を保存したくない場合は、[複数のデータベース](https://docs.djangoproject.com/ja/1.11/topics/db/multi-db/)を使う方が良いでしょう。あなたは実際のデータベースからデータベースをテストすることができます。 –
- 1. django-rest-frameworkでAPI用TokenAuthenticationを使用する方法
- 2. Django RESTフレームワーク - TokenAuthentication - キャッシュの使用
- 3. Django Rest Frameworkを使用して現在のユーザーを返す
- 4. django rest framework apiを使用してユーザープロフィールを更新する
- 5. Django Rest Framework:シリアライザのテスト
- 6. GoConveyを使用したREST APIのテスト
- 7. DjangoのREST APIを使用したログイン
- 8. django rest frameworkはカスタムオブジェクトを返します
- 9. Azure DocumentDBをDjango Rest Frameworkのデータベースとして使用する
- 10. Django Rest FrameworkとViewSetsを使用してモデルを更新する
- 11. ビューを使用したdjango-rest-frameworkはPOSTで500を返します
- 12. Pytestを使ったDjango Rest Frameworkシリアライザのテスト
- 13. DRF(django-rest-framework)とTokenAuthenticationでは、jsonフィールドをトークンに自動的に埋め込む方法は?
- 14. Django rest framework ApiドキュメントSwagger 2.0
- 15. Javascriptを使用したDjango Rest Framework APIへのアクセス - トークンの取得
- 16. 初めてユーザーがDjango Rest Frameworkを使用して認証されたことを検出しました
- 17. djangoで単一オブジェクトを返す方法GET api(rest framework)
- 18. MS Bot Frameworkを使用してREST APIと統合する
- 19. HerokuのTemplateDoesNotExist Django Rest Frameworkを使用
- 20. tokenauthenticationを適用するリクエストのタイプに基づいてAPIビューの一部にDjango Restフレームワークを追加
- 21. Django Rest Framework - model.ModelViewSetを使用してモデルを更新する
- 22. 使用するDjango Rest Frameworkのスタイル
- 23. Django Rest Framework Ionic Frameworkを使ったHTTPポストコールと認証
- 24. カスタムフィルタバックエンドを使用したdjango rest frameworkクエリセットのフィルタリング
- 25. Django Rest Frameworkで無限スクロールを使用していますか?
- 26. django-guardianとdjango-rest-framework
- 27. Django Rest FrameworkのListSerializerを使用して一括作成
- 28. 入れ子になったDjango REST Framework APIをKnockoutJsで繰り返す
- 29. Django-Rest Frameworkでのモデルの使用
- 30. Django Rest Frameworkを使用して写真をアップロード
ありがとう、@MaximeK! – panatale1