У меня возникла проблема с аутентификацией с помощью API Django Rest Framework в тестах Unit Unit. Система работает должным образом при доступе к ней через браузер. Я же получить статус 401 HTTP при отправке запроса поставленного на следующий класс в следующей конечной точке:Django APIClient login не работает
class UserDetail(RetrieveModelMixin, DestroyModelMixin, UpdateModelMixin, GenericViewSet):
authentication_classes = (BasicAuthentication, TokenAuthentication)
permission_classes = IsAuthenticated,
queryset = CustomUser.objects.all()
serializer_class = UserSerializer
Испытание ниже следующим образом:
class AccountTests(APITestCase):
def setUp(self):
self.user = CustomUser.objects.create_user(email="[email protected]", password="password1", is_staff=True)
self.user.save()
self.user = CustomUser.objects.get(email="[email protected]")
self.client = APIClient()
def test_add_name(self):
self.client.login(email="[email protected]", password='password1')
url = reverse('customuser-detail', args=(self.user.id,))
data = {'first_name': 'test', 'last_name': 'user'}
self.client.login(email="[email protected]", password='password1')
response = self.client.put(url, data, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
При печати response.data я получить:
{u'detail': u'Authentication credentials were not provided.'}
метод
client.login (...) возвращает истину, но учетные данные не отображаются для прикрепления к коллектору. Мои эксперименты в классах разрешений IsAuthenticated имели request.user = AnonymousUser. В классе BasicAuthentication auth = None.Я что-то упускаю из-за использования BasicAuth в settings.py? Или даже в самом тесте?
Спасибо.
вы решить проблема? – Ajax