Ho un viewet/router Django-rest-framework per definire un endpoint API. Il viewset è definito come tale:Come testare un endpoint API con Django-rest-framework utilizzando Django-oauth-toolkit per l'autenticazione
class DocumentViewSet(viewsets.ModelViewSet):
permission_classes = [permissions.IsAuthenticated, TokenHasReadWriteScope]
model = Document
E il router è definito come
router = DefaultRouter()
router.register(r'documents', viewsets.DocumentViewSet)
con il modello URL url(r'^api/', include(router.urls))
posso colpire questo endpoint nel browser/attraverso ricciolo bene ottenendo il token di accesso corretto e utilizzarlo per l'autorizzazione. Tuttavia, non è chiaro come scrivere test contro questo endpoint.
Ecco che cosa ho provato:
class DocumentAPITests(APITestCase):
def test_get_all_documents(self):
user = User.objects.create_user('test', '[email protected]', 'test')
client = APIClient()
client.credentials(username="test", password="test")
response = client.get("/api/documents/")
self.assertEqual(response.status_code, 200)
Questo non riesce con un 401 risposta HTTP dalla chiamata client.get()
. Qual è il modo giusto per testare un endpoint API in DRF usando django-oauth-toolkit per l'autenticazione oauth2?
Questo è il biglietto. Mi mancava la creazione del token di accesso + non era chiaro come iniettare il token nella richiesta. Grazie! – Jim
Questo era esattamente quello che stavo cercando. Grazie mille! – DanXPrado